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

Примеры команд 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. Разрезать по байтам

📋
1 символ=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, а затем объединил весь вывод с @.

Практические вопросы 🗒️

В этом разделе я поделюсь некоторыми практическими вопросами, которые вы можете использовать, чтобы лучше использовать команду «вырезать»:

  1. Сохраните вывод команды вырезания, перенаправив его в файл.

  2. Как распечатать первые 5 символов файла с помощью команды вырезания?

  3. Выведите все, игнорируя следующий диапазон символов: 2-6, 10, 12-15.

  4. Используйте e в качестве разделителя и разделите файл на 2 части.

Подведение итогов

В этом руководстве были рассмотрены основы использования команды вырезания, включая синтаксис, практические примеры и практические вопросы. Дополнительные примеры можно найти в нашем блоге в Linux Handbook:

Если вы только начинаете, возможно, вам стоит обратиться к нашему руководству по командам Linux для начинающих:

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