Linux команда cut с объяснениями для начинающих (с примерами)

by itisgood

В Linux, если вы хотите вывести одержимое файла на stdout, первой командой, которая приходит на ум, является cat.

Bat — клон cat с подсветкой синтаксиса и интеграцией Git для Linux

Однако иногда может потребоваться удалить определенную часть файла и вывести только остальную часть содержимого.

Вы будете рады узнать, что есть инструмент -cut –  и он позволяет вам это делать.

В этой статье мы обсудим этот инструмент, используя несколько простых для понимания примеров.

Но прежде чем мы это сделаем, стоит упомянуть, что все примеры в этой статье были протестированы на машине Ubuntu 18.04 LTS.

Команда cut Linux

Команда cut в Linux позволяет пользователям удалять разделы из каждой строки файлов. Ниже приводится его синтаксис:

 cut OPTION... [FILE]... 

Вот что говорит страница man об этой утилите:

Print selected parts of lines from each FILE to standard output.

With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.

Далее последуют примеры в стиле Вопрос & Ответ, которые должны дать вам представление о том, как работает эта утилита.

Вопрос 1. Как использовать команду cut?

Команда cut ожидает, что пользователь предоставит список байтов, символов или полей.

Вы можете указать байты, используя опцию командной строки -b.

Например, предположим, что есть файл с именем file1.txt, который содержит следующую строку:

abcdefghijklmnopqrstuvwxyz

И вы хотите отображать только первые три байта.

Затем в этом случае вы можете использовать опцию -b следующим образом:

cut file1.txt -b1,2,3

Вывод будет следующим:

abc

Вы также можете указать диапазон:

cut file1.txt -b1-10</p>

<pre>abcdefghij

Двигаясь дальше  вы также можете использовать дефис (-) с номером, чтобы сообщить команде вырезания либо отобразить все байты после байта с этим номером, либо все байты перед байтом на этом номере.

Например, следующая команда будет следить за тем, чтобы отображались все байты, включая 5 и после него.

cut file1.txt -b5-

И следующая команда отобразит первые 5 байтов:

cut file1.txt -b-5

Вопрос 2. Как бороться с символами?

Иногда файл, который вы передаете команде cut, содержит символы размером более одного байта.

В этом случае рекомендуется использовать параметр -c, который позволяет инструменту правильно понимать, какие символы вы хотите отображать или удалять.

Например, ♣ является специальным символом, который занимает несколько байтов.

Поэтому, если вы хотите использовать команду cut в текстовом потоке, содержащем эти символы, лучше использовать -c вместо -b.

Функциональность мудрая, и -c и -b работают аналогичным образом.

Вопрос 3. Как cut работает с разделителями?

Еще, вы можете заставить команду cut работать с разделителями. Для этого вы можете использовать опцию командной строки -d.

Например, предположим, что входной файл содержит поля, разделенные запятыми:

itisgood, ISG, itisgood.ru
itsecforu, IS4U,itsecforu.ru

И вы хотите вывести первую и третью записи, тогда это можно сделать следующим образом:

cut file1.txt -d, -f1,3

Обратите внимание, что параметр -f позволяет вам выбирать поля, которые вы хотите отобразить.

You may also like

Leave a Comment