Примеры команд Linux cut
Команда Linux `cut` — одна из полезных команд для работы со строковыми данными и содержимым файла. Он в основном используется для вырезания содержимого из табличных данных или файла CSV. Каждая строка файла может быть нарезана, а необходимые данные могут быть легко извлечены с помощью команды `cut`. Его также можно использовать для вырезания текста по разделителю, символу или позиции байта. Эта команда имеет множество опций для вырезания данных из текста или файла различными способами. Как можно использовать команду вырезания с различными параметрами, показано в этом руководстве на различных примерах.
Синтаксис:
Значение 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, чтобы выйти из команды.
Вывод:
Здесь ввод — «мне нравится программирование», а вывод — «нравится» на основе упомянутых байтов.
Создайте текстовый файл с именем «productlist.txt» со следующим содержимым для применения команды «cut». Используйте TAB, чтобы разделить поля содержимого файла.
01 Pen $2
02 Pencil $1.5
03 Eraser $1
Выполните следующую команду, чтобы получить только идентификатор продукта. Здесь байты указаны в виде диапазона «1-2», чтобы сократить данные.
Вывод:
Пример 2. Вырезать по символам
Вы можете сгенерировать тот же вывод, используя параметр -c, как показано в предыдущих примерах. Итак, особой разницы между выводом опций -b и -c команды cut нет. Выполните следующую команду, чтобы показать использование параметра -c. Здесь 4- используется как значение параметра, которое будет обрезать позицию 4 до всех оставшихся символов каждой строки. Вы также можете использовать отрицательный знак перед значением, например -4, тогда оно будет сокращено с начала до 4 позиций.
Вывод:
Первые три символа в выводе опущены.
Пример 3. Вырезать по разделителю и полям
Создайте файл CSV с именем «students.csv» со следующим содержимым, чтобы показать использование разделителя.
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.
Вывод:
Если вы хотите напечатать два или более последовательных столбца любых табличных данных или файла CSV, вы можете определить поля как диапазон. Диапазон значения поля используется в следующей команде. Здесь все поля со 2 по 4 будут напечатаны в качестве вывода.
Вывод:
Пример 4. Вырезать по дополнению
Опция --complement используется для генерации противоположного вывода команды. В следующей команде используется файл productlist.txt, созданный в первом примере. Здесь параметр -f вырежет 1st поле, а параметр --complement напечатает остальные все поля файла, опуская 1st поле.
$ cut --complement -f 1 productlist.txt
Вывод:
Пример 5. Вырезать по выходному разделителю
Эта опция используется для создания вывода с использованием определенного разделителя. Ранее созданный файл students.csv используется в следующей команде. ‘,’ — это разделитель по умолчанию для любого CSV-файла. Следующая команда использует «:» в качестве выходного разделителя.
$ cut -d "," -f 1-3 students.csv --output-delimiter=":"
Вывод:
После выполнения команды разделитель ввода «,» будет заменен разделителем вывода «:», а первые три поля будут напечатаны с разделителем «:».
Пример 6. Использование команды "Вырезать с помощью трубы"
Команда Cut может принимать данные из любого файла или пользовательского ввода. Но входной текст можно отправить в команду вырезания с помощью конвейера. Следующая команда показывает использование команды cut для трубы. Здесь команда echo будет вводить текст для команды вырезания, а команда вырезания вырежет поля 2 и 3 на основе разделителя.
Вывод:
Пример 7. Сохранение вывода команды cut в файл
Если вы хотите, вы также можете сохранить вывод команды cut в любой текстовый файл. Следующая команда возьмет содержимое файла student.csv в качестве входных данных, обрежет 2nd поле на основе разделителя и напечатает выходные данные в текстовом файле с именем 'student_names.txt'.
$ 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 будет понятно читателям после выполнения приведенных выше примеров.