Примеры команд Cut в Linux
Команда «Вырезать» позволяет извлечь часть файла для печати, не затрагивая исходный файл. Узнайте больше здесь.
Команда вырезания используется для вырезания определенной части файла и вывода ее на стандартный вывод без изменения самого файла.
Другими словами, вы можете вытащить из файла определенное количество слов или символов с помощью команды вырезания.
Не волнуйтесь, я познакомлю вас с основными моментами, которые помогут вам узнать об этом больше:
Основной синтаксис команды
-
Практические примеры использования команды вырезания
Практические вопросы по команде «Вырезать»
Итак, начнем.
Вот как использовать команду вырезания
Чтобы использовать команду вырезания, важно знать синтаксис.
Итак, вот основной синтаксис, которому необходимо следовать, чтобы использовать команду вырезания:
cut [option] <Filename or path to file>
Здесь,
[option]
: используется для изменения поведения команды резки по умолчанию.Имя файла
: сюда вы добавляете имя файла или путь к файлу для работы с командой вырезания.
Если вам интересно, вот список популярных опций, используемых с командой вырезания:
-d
Устанавливает разделитель полей (по умолчанию — табуляция).
-f
-
Указывает, какие поля следует извлечь (например,
-f 2
для второго поля). -b
Вырезает определенные байты или диапазоны байтов.
-c
Вырезает определенные символы или диапазоны символов.
-s
Печатает только строки, содержащие разделители (по умолчанию печатаются пустые строки).
--complement
Вырезает все, кроме указанных байтов, символов или полей.
Чтобы сделать руководство простым для понимания, я буду использовать один текстовый файл с именем Haruki.txt
во всех примерах, который содержит следующее содержимое:
Book_Name Year
Hear the Wind Sing (A Wild Sheep Chase) (1973)
Pinball, (1973)
Norwegian Wood (1987)
A Walk to the Bakery (1982)
Hard-Boiled Wonderland and the End of the World (1985)
The Wind-Up Bird Chronicle (1994-1995)
Sputnik Sweetheart (1999)
Kafka on the Shore (2002)
After Dark (2004)
1Q84 (2009-2010)
Colorless Tsukuru Tazaki and His Years of Pilgrimage (2013)
Killing Commendatore (2017)
First Person Singular (2020)
Теперь давайте рассмотрим несколько примеров использования команды Cut в Linux.
1. Разрезать по байтам
Самый простой способ вырезать символы с помощью команды Cut — указать байт места в памяти, занимаемый текстом, и вырезать нужную часть файла.
Чтобы разрезать по байтам, вы можете использовать флаг -b
, а затем указать позицию с точки зрения индексации:
cut -b <nth byte> Filename
Например, если я хочу вырезать пятый символ, используйте следующее:
cut -b 5 Haruki.txt
Проще говоря, используйте байты в качестве порядкового номера. Допустим, вы хотите вырезать седьмой символ, затем указываете 7
вместе с флагом -b
.
Вырезать несколько символов из каждой строки
Вы можете вырезать несколько символов из каждой строки, используя флаг -b
, где вы указываете несколько байтов, разделенных запятыми.
Например, если я хочу вырезать третий, шестой и седьмой символ из каждой строки, я буду использовать следующее:
cut -b 3,6,7 Haruki.txt
Вырезать диапазон символов
С помощью команды вырезания вы также можете указать диапазон символов, которые необходимо вырезать.
Например, если я хочу вырезать с третьего по седьмой символ, я буду использовать следующее:
cut -b 3-7 Haruki.txt
Вырезать все, кроме определенных байтов
Вы можете использовать флаг --complement
, чтобы вырезать все, кроме определенных байтов, с помощью которых вы можете игнорировать указанные байты и печатать все остальное.
Чтобы использовать флаг --complement
, вам необходимо следовать следующему синтаксису:
cut -b <bytes> --complement Filename
Допустим, я хочу игнорировать первые пять байтов, тогда я буду использовать следующее:
cut -b 1-5 --complement Haruki.txt
Укажите начальную или конечную точку для резки
Используя команду вырезания, вы также можете указать начальную точку, с которой вы собираетесь начать вырезание символов, или конечную точку, где нужно остановиться.
Чтобы указать начальную точку, вы используете n-
, где n
— это номер, с которого вы хотите начать обрезать символы до конца строки:
cut -b n- Filename
Например, если я хочу вырезать пятый символ до конца строки, я буду использовать следующее:
cut -b 5- Haruki.txt
Чтобы указать конечную точку, вы используете -n
(обратите внимание на тире перед n), где n
— это последний символ, обозначающий границу, которую нужно обрезать. :
cut -b -n Filename
Например, если я хочу вырезать до седьмого символа, я буду использовать следующее:
cut -b -7 Haruki.txt
Рекомендуется прочитать 📖
2. Вырезать по персонажам
Это точно так же, как опция byte, но здесь используется индексация символов, а не индексация байтов, что полезно, особенно в тех случаях, когда один символ использует несколько байтов.
Например, если я хочу вырезать первые пять символов, я буду использовать флаг -c
следующим образом:
cut -c 5 Haruki.txt
Вы также можете указать диапазон символов, используя флаг -c
. Допустим, я хотел бы вырезать символ с седьмого по десятый, тогда я буду использовать следующее:
cut -c 7-10 Haruki.txt
Кроме того, вы также можете вырезать, указав начальную и конечную точку, как я объяснял ранее. Вот как я обрежу до 10-го символа, используя флаг -c
:
cut -c -10 Haruki.txt
Вы также можете указать, какие символы игнорировать и печатать все остальное, используя флаг --complement
.
Например, здесь я напечатал все, игнорируя символы с 10 по 15:
3. Разрез по полям
По умолчанию, если вы хотите вырезать по полю, в качестве разделителя будет использоваться табуляция. Конечно, вы можете использовать другой разделитель, о котором я также упомяну.
Чтобы вырезать по полю, используйте флаг -f
, как показано здесь:
cut -f <number of fields> Filename
Например, если я хочу вырезать 1 поле, я буду использовать следующее:
cut -f 1 Haruki.txt
Чтобы изменить разделитель, вам нужно использовать флаг -d
, за которым следует разделитель, который вы хотите использовать:
cut -d "delimiter" -f <number of fields> Filename
Например, здесь я использовал a
в качестве символа, поэтому он будет печататься до тех пор, пока в строке не появится символ a
:
cut -d "a" -f 1 Haruki.txt
4. Объедините вывод, используя разделитель.
Когда вы используете разделитель, он объединяет выходные данные без использования разделителя, поэтому в конечном итоге выходные данные разделяются пробелом.
Вы можете изменить это поведение, используя флаг --output-delimite
.
--output-delimite
будет работать только в том случае, если выходные данные разделены на два или более столбца.Чтобы использовать флаг --output-delimite
, используйте следующий синтаксис:
cut <options for cutting file> --output-delimite=delimiter Filename
Например, здесь я использовал флаг -c
, чтобы вырезать разные части файла, а затем использовал флаг --output-delimite
для объединения вывода с @
:
cut -c 1-5,9,11-14 --output-delimiter=@ Haruki.txt
Ты это видел? Сначала я использовал флаг -c
для печати символов с 1 по 5, затем с 9, а затем с 11 по 14, а затем объединил весь вывод с @
.
Практические вопросы 🗒️
В этом разделе я поделюсь некоторыми практическими вопросами, которые вы можете использовать, чтобы лучше использовать команду «вырезать»:
Сохраните вывод команды вырезания, перенаправив его в файл.
Как распечатать первые 5 символов файла с помощью команды вырезания?
Выведите все, игнорируя следующий диапазон символов: 2-6, 10, 12-15.
Используйте
e
в качестве разделителя и разделите файл на 2 части.
Подведение итогов
В этом руководстве были рассмотрены основы использования команды вырезания, включая синтаксис, практические примеры и практические вопросы. Дополнительные примеры можно найти в нашем блоге в Linux Handbook:
Если вы только начинаете, возможно, вам стоит обратиться к нашему руководству по командам Linux для начинающих: