В 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 позволяет вам выбирать поля, которые вы хотите отобразить.