Поиск по сайту:

Примеры команд Linux cut


Команда Linux `cut` — одна из полезных команд для работы со строковыми данными и содержимым файла. Он в основном используется для вырезания содержимого из табличных данных или файла CSV. Каждая строка файла может быть нарезана, а необходимые данные могут быть легко извлечены с помощью команды `cut`. Его также можно использовать для вырезания текста по разделителю, символу или позиции байта. Эта команда имеет множество опций для вырезания данных из текста или файла различными способами. Как можно использовать команду вырезания с различными параметрами, показано в этом руководстве на различных примерах.

Синтаксис:

cut OPTION... [FILE]

Значение OPTION является обязательным для использования для команды `cut`, а имя FILE не является обязательным. Если вы опустите имя файла в команде, она возьмет данные из стандартного ввода. Но если вы опустите значение OPTION в команде cut, это приведет к ошибке.

Параметры:

-b or –byte=LIST

Выберите определенные байты.

-c or –character=LIST

Выберите определенные символы.

-d or –delimiter=DELIM

Выберите значение DELIM в качестве разделителя. По умолчанию разделителем является TAB.

-f or –fields=LIST

Выберите определенные поля

–complement

Используйте для дополнения вывода

-s or –only-delimited

Пропустите строки, не содержащие разделитель.

–output-delimiter=STRING

Используйте значение STRING в качестве выходного разделителя.

-z or –zero-terminated

Используйте NULL в качестве разделителя строк.

Пример 1. Вырезать по байтам

Следующая команда cut разделит стандартные входные данные на основе определенных байтов. Здесь 3,4,5 и 6 определены как байты. Вывод будет генерироваться на основе стандартного ввода. Нажмите CTRL+D, чтобы выйти из команды.

$ cut -b 3,4,5,6

Вывод:

Здесь ввод — «мне нравится программирование», а вывод — «нравится» на основе упомянутых байтов.

Создайте текстовый файл с именем «productlist.txt» со следующим содержимым для применения команды «cut». Используйте TAB, чтобы разделить поля содержимого файла.

ID   Name     Price
01   Pen       $2
02   Pencil    $1.5
03   Eraser    $1

Выполните следующую команду, чтобы получить только идентификатор продукта. Здесь байты указаны в виде диапазона «1-2», чтобы сократить данные.

$ cut -b 1-2 < productlist.txt

Вывод:

Пример 2. Вырезать по символам

Вы можете сгенерировать тот же вывод, используя параметр -c, как показано в предыдущих примерах. Итак, особой разницы между выводом опций -b и -c команды cut нет. Выполните следующую команду, чтобы показать использование параметра -c. Здесь 4- используется как значение параметра, которое будет обрезать позицию 4 до всех оставшихся символов каждой строки. Вы также можете использовать отрицательный знак перед значением, например -4, тогда оно будет сокращено с начала до 4 позиций.

$ cut -c 4- productlist.txt

Вывод:

Первые три символа в выводе опущены.

Пример 3. Вырезать по разделителю и полям

Создайте файл CSV с именем «students.csv» со следующим содержимым, чтобы показать использование разделителя.

1001,Jonathan,CSE,3.74
1002,Micheal,EEE,3.99
1003,Asraful Haque,BBA,3.85
1004,Momotaj Khan,English,3.20

Выполните следующую команду, чтобы распечатать имя учащегося и CGPA из файла students.csv. Согласно содержимому файла, 2nd и 4th поля содержат имя студента и CGPA. Итак, в этой команде используются две опции для отображения вывода. Один из них — разделитель, -d, который здесь равен «,», а другой — параметр поля, -f.

$ cut -d  ',' -f 2,4 students.csv

Вывод:

Если вы хотите напечатать два или более последовательных столбца любых табличных данных или файла CSV, вы можете определить поля как диапазон. Диапазон значения поля используется в следующей команде. Здесь все поля со 2 по 4 будут напечатаны в качестве вывода.

$ cut -d  ',' -f 2-4 students.csv

Вывод:

Пример 4. Вырезать по дополнению

Опция --complement используется для генерации противоположного вывода команды. В следующей команде используется файл productlist.txt, созданный в первом примере. Здесь параметр -f вырежет 1st поле, а параметр --complement напечатает остальные все поля файла, опуская 1st поле.

$ cat productlist.txt
$ cut --complement -f 1 productlist.txt

Вывод:

Пример 5. Вырезать по выходному разделителю

Эта опция используется для создания вывода с использованием определенного разделителя. Ранее созданный файл students.csv используется в следующей команде. ‘,’ — это разделитель по умолчанию для любого CSV-файла. Следующая команда использует «:» в качестве выходного разделителя.

$ cat students.csv
$ cut -d "," -f 1-3 students.csv --output-delimiter=":"

Вывод:

После выполнения команды разделитель ввода «,» будет заменен разделителем вывода «:», а первые три поля будут напечатаны с разделителем «:».

Пример 6. Использование команды "Вырезать с помощью трубы"

Команда Cut может принимать данные из любого файла или пользовательского ввода. Но входной текст можно отправить в команду вырезания с помощью конвейера. Следующая команда показывает использование команды cut для трубы. Здесь команда echo будет вводить текст для команды вырезания, а команда вырезания вырежет поля 2 и 3 на основе разделителя.

$ echo "Testing cut command" | cut -d " " -f 2,3

Вывод:

Пример 7. Сохранение вывода команды cut в файл

Если вы хотите, вы также можете сохранить вывод команды cut в любой текстовый файл. Следующая команда возьмет содержимое файла student.csv в качестве входных данных, обрежет 2nd поле на основе разделителя и напечатает выходные данные в текстовом файле с именем 'student_names.txt'.

$ cat students.csv
$ cat students.csv | cut -d cat students.csv | cut -d "," -f 2 > student_name.txt“,”
f 2 > student_name.txt
$ cat student_names.txt

Вывод:

Вывод:

В этом руководстве мы попытаемся объяснить наиболее распространенное использование команды cut на приведенных выше примерах. Надеюсь, что использование команды cut будет понятно читателям после выполнения приведенных выше примеров.

Статьи по данной тематике: