logo

команда cut в Linux із прикладами

Команда cut в Linux — це команда для вирізання розділів із кожного рядка файлів і запису результату до стандартного виводу. Його можна використовувати для вирізання частин рядка за позицією байта, символом і полем. Команда вирізання розрізає лінію та витягує текст. У команді необхідно вказати опцію, інакше видається помилка. Якщо вказано декілька імен файлів, даним із кожного файлу не передує його ім’я.

Зміст

Синтаксис команди cut

Основний синтаксисcut>команда:



cut OPTION... [FILE]...>

Де

`OPTION`> визначає бажану поведінку

` FILE> `>представляє вхідний файл.

Примітка : ЯкщоFILE>не вказано, ` cut`> читає зі стандартного введення (stdin).

Параметри, доступні в команді cut

Ось список найбільш часто використовуваних параметрів із ` cut`> команда:

Варіант

опис

-b, –bytes=СПИСОК

Вибирає лише байти, указані вLIST>(наприклад,-b 1-3,7>).

-c, –characters=СПИСОК

Вибирає лише символи, указані вLIST>(наприклад,-c 1-3,7>).

-d, –розділювач=РОЗДІЛИТИ

ВикористанняDELIM>як символ роздільника поля замість символу табуляції.

-f, –fields=LIS

Вибирає лише ті поля, які вказані вLIST>, розділених символом-роздільником (за замовчуванням це табуляція).

-п

Не розділяйте багатобайтові символи (без ефекту, якщо тільки-b>або-c>вказано).

– доповнювати

Інвертувати виділення полів/символів. Надрукувати невибрані поля/символи.

Практичні приклади команди 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

вибір символів від початку до кінця рядка за допомогою параметра -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

Витягніть перше поле за допомогою параметра -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='%'>

2024-02-16_13-18

Тут команда cut змінює розділювач (%) у стандартному виведенні між полями, який вказується за допомогою параметра -f.

Версія дисплея (--version>) Використання команди cut

– версія: Цей параметр використовується для відображення версії cut, яка зараз запущена у вашій системі.

cut --version>

відобразити версію команди cut

відобразити версію команди cut

Як використовувати хвіст із трубами (|) у команді cut

Команду cut можна передавати з багатьма іншими командами Unix. У наступному прикладі виведення кішка Команда надається як вхідні дані для вирізати команда с -f опція для сортування назв станів, що надходять із файлу state.txt у зворотному порядку.

cat state.txt | cut -d ' ' -f 1 | sort -r>
використання хвоста з трубою (|) у команді cut

використання хвоста з трубою (|) у команді 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