Библиотека сайта rus-linux.net
Руководство по команде cut для начинающих
Оригинал: Linux cut Command Explained for Beginners (with Examples)
Автор: Himanshu Arora
Дата публикации: 28 августа 2018 года
Перевод: А. Кривошей
Дата перевода: апрель 2019 г.
В Linux, если вы хотите вывести содержимое файла на stdout, первая команда, которая приходит на ум, это cat. Однако могут быть случаи, когда требуется удалить определенную часть файла и вывести только оставшуюся часть его содержимого. Вам будет интересно узнать, что существует утилита cut, которая позволяет вам это делать.
В этой статье мы обсудим эту утилиту на нескольких простых для понимания примерах. Необходимо отметить, что все примеры в этой статье были протестированы на машине с Ubuntu 18.04 LTS.
Команда cut
Команда cut в Linux позволяет пользователям удалять участки из каждой строки файла. Ниже приводится ее синтаксис:
cut OPTION... [FILE]...
Вот что говорит man-страница об этой утилите:
Вывод выбранных частей строк из каждого файла в standard output.
Если FILE не указан, читает стандартный ввод.
Ниже приведены некоторые примеры в стиле вопрос/ответ, которые должны дать вам хорошее представление о том, как работает эта утилита.
Q1. Как использовать команду cut?
Команда cut ожидает, что пользователь предоставит список байтов, символов или полей. Вы можете предоставить ей байты, используя опцию командной строки -b.
Например, предположим, что есть файл с именем file1.txt, который содержит следующую строку:
abcdefghijklmnopqrstuvwxyz
И вы хотите отобразить только первые три байта. В этом случае вы можете использовать опцию -b следующим образом:
$ cut file1.txt -b1,2,3
Вывод:
abc
Вы также можете задать диапазон:
$ cut file1.txt -b1-10
В этом случае вы получите следующий вывод:
abcdefghij
Далее, вы также можете использовать дефис (-) с номером, чтобы указать команде cut выводить все байты после байта с этим номером или все байты до байта с этим номером.
Например, следующая команда обеспечит отображение всех байтов после пятого, включая и байт с номером 5.
$ cut file1.txt -b5-
А приведенная ниже команда выведет первые пять байтов:
$ cut file1.txt -b-5
Q2. Как работать с символами?
Иногда файл, передаваемый команде cut, содержит символы размером более одного байта. В этом случае рекомендуется использовать параметр -c, который позволяет утилите правильно понимать, какие символы вы хотите отобразить или удалить.
Например, ♣ - это специальный символ, который занимает несколько байтов. Поэтому, если вы хотите использовать команду cut в текстовом потоке, который содержит символы такого типа, то лучше использовать -c вместо -b. По функциональности, -c и -b работают одинаково.
Q3. Как cut работает с разделителями?
Вы также можете заставить команду cut работать с разделителями. Для этого вы можете использовать параметр командной строки -d.
Например, предположим, что входной файл содержит поля, разделенные запятыми:
Howtoforge, HTF, howtoforge.com FaqForge, FF, faqforge.com
И вам нужны только первая и третья записи, тогда это можно сделать следующим образом:
$ cut file1.txt -d, -f1,3
Обратите внимание, что опция -f позволяет вам выбрать поля, которые вы хотите отобразить.
Заключение
Итак, вы видите, что команда cut может сэкономить много времени, если задача включает выборочный вывод содержимого файла. Здесь мы обсудили некоторые основные параметры командной строки, которые предлагает эта утилита. Чтобы узнать больше, почитайте man-страницу команды.
На нашем сайте есть и другие статьи о программе cut в Linux:
- А.Дмитриев. Серия HuMan: Команда cut
- Изучаем команды Linux: cut
- Фундаментальные основы Linux. Часть IV. Программные каналы и команды