Команда cut в Linux — це команда для вирізання розділів із кожного рядка файлів і запису результату до стандартного виводу. Його можна використовувати для вирізання частин рядка за позицією байта, символом і полем. Команда вирізання розрізає лінію та витягує текст. У команді необхідно вказати опцію, інакше видається помилка. Якщо вказано декілька імен файлів, даним із кожного файлу не передує його ім’я.
Зміст
- Синтаксис команди cut
- Параметри, доступні в команді cut
- Практичні приклади команди cut
- Видобути певні байти (-b) за допомогою команди cut
- Вирізати за символом (-c) Використання команди cut
- Вирізати за полем (-f) Використання команди cut
- Вивід доповнення (–доповнення) за допомогою команди cut
- Вихідний роздільник (–output-delimiter) Використання команди cut
- Показати версію (–версію) за допомогою команди cut
- Як використовувати хвіст із трубами (|) у команді cut
- Часті запитання щодо команди cut у Linux – поширені запитання
Синтаксис команди cut
Основний синтаксисcut>команда:
cut OPTION... [FILE]...>
Де
`OPTION`> визначає бажану поведінку
` FILE> `>представляє вхідний файл.
Примітка : ЯкщоFILE>не вказано, ` cut`> читає зі стандартного введення (stdin).
Параметри, доступні в команді cut
Ось список найбільш часто використовуваних параметрів із ` cut`> команда:
| Варіант | опис |
|---|---|
| -b, –bytes=СПИСОК | Вибирає лише байти, указані в |
| -c, –characters=СПИСОК | Вибирає лише символи, указані в |
| -d, –розділювач=РОЗДІЛИТИ | Використання |
| -f, –fields=LIS | Вибирає лише ті поля, які вказані в |
| -п | Не розділяйте багатобайтові символи (без ефекту, якщо тільки |
| – доповнювати | Інвертувати виділення полів/символів. Надрукувати невибрані поля/символи. |
Практичні приклади команди cut
Розглянемо два файли з іменем state.txt і capital.txt містить 5 назв індійських штатів і столиць відповідно.
$ cat state.txt Andhra Pradesh Arunachal Pradesh Assam Bihar Chhattisgarh>
Якщо не вказано жодного параметра, відображається помилка.
$ cut state.txt cut: you must specify a list of bytes, characters, or fields Try 'cut --help' for more information.>
Видобути певні байти (-b>) Використання команди cut
-b(байт): Щоб отримати певні байти, вам потрібно слідувати за параметром -b зі списком номерів байтів, розділених комами. Діапазон байтів також можна вказати за допомогою дефіса (-). Необхідно вказати список номерів байтів, інакше він видає помилку.
Табуляції та зворотні проміжки обробляються як символ 1 байта.
Список без діапазонів :
cut -b 1,2,3 state.txt>

список без діапазону
Список із діапазонами:
cut -b 1-3,5-7 state.txt>

список з діапазоном
Він використовує спеціальну форму для вибору байтів від початку до кінця рядка:
Спеціальна форма: вибір байтів від початку до кінця рядка
Тут 1- вказує від 1-го байта до кінцевого байта рядка
cut -b 1- state.txt>

спеціальна форма з опцією -b
У цьому випадку -3 вказує від 1-го до 3-го байтів рядка
cut -b -3 state.txt>

спеціальна форма -b варіант
Вирізати за характером (-c>) Використання команди cut
-c (стовпець): Щоб вирізати за символом, використовуйте опцію -c. Це вибирає символи, надані параметру -c. Це може бути список чисел, розділених комами, або діапазон чисел, розділених дефісом (-).
Табуляції та зворотні проміжки розглядаються як персонаж. Необхідно вказати список номерів символів, інакше ця опція видає помилку.
Синтаксис:
cut -c [(k)-(n)/(k),(n)/(n)] filename>
тут, k позначає початкову позицію персонажа і п позначає кінцеву позицію символу в кожному рядку, якщо k і п відокремлені символом - інакше це лише позиція символу в кожному рядку з файлу, взятого як вхідні дані.
Виділіть певні символи:
cut -c 2,5,7 state.txt>

Виділіть певні символи
Над командою cut друкує другий, п'ятий і сьомий символи з кожного рядка файлу.
Виділіть перші сім символів:
cut -c 1-7 state.txt>

Виділіть перші сім символів
Наведена вище команда вирізання друкує перші сім символів кожного рядка з файлу. Cut використовує спеціальну форму для вибору символів від початку до кінця рядка:
Спеціальна форма: виділення символів від початку до кінця рядка
cut -c 1- state.txt>

вибір символів від початку до кінця рядка за допомогою параметра -c
Команда вище друкує, починаючи з першого символу до кінця. Тут у команді вказано лише початкову позицію, а кінцеву позицію опущено.
cut -c -5 state.txt>

вибір символів від початку до кінця рядка за допомогою параметра -c
Команда вище друкує початкову позицію до п’ятого символу. Тут початкова позиція опущена, а кінцева позиція вказана.
Поріз по полю (-f>) Використання команди cut
-f (поле): -c Цей параметр корисний для ліній фіксованої довжини. Більшість файлів Unix не мають рядків фіксованої довжини. Щоб отримати корисну інформацію, потрібно розрізати поля, а не стовпці. Перелік номерів полів зазначений через кому. Діапазони не описуються параметром -f . вирізати використовує вкладка як роздільник поля за замовчуванням, але також може працювати з іншим роздільником за допомогою -д варіант.
Примітка: Пробіл не розглядається як роздільник в UNIX.
Синтаксис:
cut -d 'delimiter' -f (field number) file.txt>
Витягти перше поле:
Як у файлі state.txt поля відокремлюються пробілом, якщо параметр -d не використовується, тоді друкується весь рядок:
cut -f 1 state.txt>

Витягніть перше поле за допомогою параметра -f
Якщо ` -d` використовується параметр, тоді він розглядає пробіл як роздільник полів або обмежувач:
cut -d ' ' -f 1 state.txt>

пробіл як роздільник полів або роздільник
Витягніть поля з 1 по 4:
Команда друкує поле з першого по четвертий кожного рядка з файлу.
cut -d ' ' -f 1-4 state.txt>

Команда друкує поле з першого по четверте
Вихід доповнення (--complement>) Використання команди cut
– доповнення: Як випливає з назви, він доповнює результат. Цю опцію можна використовувати в комбінації з іншими опціями або з -f або з -c .
cut --complement -d ' ' -f 1 state.txt>

– доповнювати
cut --complement -c 5 state.txt>

– доповнювати
Вихідний роздільник (--output-delimiter>) Використання команди cut
– вихідний роздільник: За замовчуванням вихідний роздільник такий самий, як і вхідний роздільник, який ми вказуємо у розрізі -д варіант. Щоб змінити вихідний роздільник, скористайтеся опцією –output-delimiter=роздільник .
cut -d ' ' -f 1,2 state.txt --output-delimiter='%'>

Тут команда cut змінює розділювач (%) у стандартному виведенні між полями, який вказується за допомогою параметра -f.
Версія дисплея (--version>) Використання команди cut
– версія: Цей параметр використовується для відображення версії cut, яка зараз запущена у вашій системі.
cut --version>

відобразити версію команди cut
Як використовувати хвіст із трубами (|) у команді cut
Команду cut можна передавати з багатьма іншими командами Unix. У наступному прикладі виведення кішка Команда надається як вхідні дані для вирізати команда с -f опція для сортування назв станів, що надходять із файлу state.txt у зворотному порядку.
cat state.txt | cut -d ' ' -f 1 | sort -r>

використання хвоста з трубою (|) у команді cut
Він також може бути оснащений одним або кількома фільтрами для додаткової обробки. Подібно до наступного прикладу, ми використовуємо команди cat, head і cut, результати яких зберігаються в імені файлу list.txt за допомогою директиви (>).
cat state.txt | head -n 3 | cut -d ' ' -f 1>list.txt>
cat list.txt>

скільки клавіш має клавіатура
переспрямування виводу в інший файл
Часті запитання щодо команди cut у Linux – поширені запитання
Як я можу використовувати cut> команду для вилучення певних стовпців із файлу?
Приклад: Щоб витягти перший і третій стовпці з файлу CSV під назвою ` data.csv`> .
cut -d',' -f1,3 data.csv>
Чи можу я використовувати cut> витягти діапазон символів з кожного рядка?
Так, ти можеш. Щоб отримати символи від 5 до 10 з кожного рядка файлу з іменемtext.txt>.
cut -c5-10 text.txt>
Як я можу змінити роздільник, який використовує cut> команда?
Використовуйте ` -d`> після символу розділювача. Наприклад, використовувати двокрапку (:>) як роздільник.
cut -d':' -f1,3 data.txt>
Чи можна використовувати cut> витягти поля на основі позиції символу?
Так, ви можете вказати позиції символів за допомогою ` -c`> варіант. Наприклад, щоб витягти символи від 1 до 5 і від 10 до 15 з кожного рядка.
cut -c1-5,10-15 data.txt>
Як я використовую cut> щоб витягти поля на основі певного роздільника та зберегти їх у новому файлі?
Щоб витягти поля, розділені комами, і зберегти їх у новому файлі з назвою ` output.tx> t`>
cut -d',' -f1,3 data.csv>output.txt>
Висновок
У цій статті ми обговорили ` cut`> команда в Linux, яка є універсальним інструментом для вилучення певних розділів із файлів на основі позиції байта, символу чи поля. Він розрізає рядки тексту та виводить витягнуті дані. Неможливо вказати параметр ізcut>команда призводить до помилки. Можна обробити декілька файлів, але вихід не містить імен файлів. Такі параметри, як ` -b`> , ` -c`> , і ` -f`> дозволити видобування за байтом, символом і полем відповідно. The--complement>інвертує виділення, друкуючи те, що не вибрано, і--output-delimiter>змінює вихідний роздільник. Команда також містить параметри відображення версії та може використовуватися в поєднанні з іншими командами через канали для додаткової обробки.
?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L