Команда cut в Linux с примерами

Команда cut в Linux с примерами

Утилита cut — инструмент командной строки Linux, предназначенный для обработки текста. Ее основная функция заключается в извлечении определенных секций / блоков символов из строк текстового файла или входных данных.

В этой статье мы покажем, как использовать утилиту cut в ОС Linux.

Содержание:

  1. Синтаксис команды cut
  2. Вывод конкретного байта из строк файла
  3. Отображение нескольких байт (или их диапазона) из строк файла
  4. Вывод на экран символов текста, начиная с определенного байта
  5. Вывод на экран символов текста до определенного байта
  6. Извлечение символов на основе их позиций
  7. Извлечение столбцов текста по указанному разделителю
  8. Отображение всех байтов или символов текста, кроме выбранных
  9. Выводы

Синтаксис команды cut

Команда cut имеет простой синтаксис, который выглядит следующим образом:

 

Где:

  • [options] — различные опции, которые расширяют функционал утилиты;
  • [file] — входной файл для обработки (если файл не указан, cut считывает данные со стандартного ввода).

Далее мы будем работать с файлом example.txt. Вот его содержимое:

 

example file

Читайте также: 12 полезных команд для фильтрации текста и эффективных операций с файлами в Linux.

Вывод конкретного байта из строк файла

Извлечение байтов — выделение фрагментов текста на основе положения байтов. Опция -b утилиты cut позволяет извлечь из строк текста символы, основываясь на их байтовых позициях. Например, чтобы вывести символы, занимающие 1 и 3 байтовые позиции, используем следующие команды:

 

Print Certain Byte of File

Отображение нескольких байт (или их диапазона) из строк файла

Для опции -b можно перечислить через запятые позиции байт символов, которые необходимо вывести на экран одновременно. Например:

 

Print Multiple Bytes of File

Чтобы в терминале показать диапазон байтов, укажем в качестве аргумента опции -b первый и последний байт интервала через дефис. Например, выведем символы с 1-го по 5-ый и с 7-го по 15-ый байта для каждой строки:

 

Print a Range of Bytes of File

Читайте также: 12 практических примеров команды grep в Linux.

Вывод на экран символов текста, начиная с определенного байта

Допустим, нам нужно вывести в окно терминала все символы строк текста, начиная с четвертого байта. Для этого в качестве аргумента -b укажем значение 4-:

 

Print Specify Start Byte Position of File

Вывод на экран символов текста до определенного байта

Также нам нужно извлечь все символы от начала строки до 10-го байта. Чтобы это сделать, укажем -10 в качестве аргумента -b:

 

Print Specify End Byte Position of File

Извлечение символов на основе их позиций

Извлечение символов подразумевает выделение текста с ориентацией на позиции самих символов, а не байтов. Такой подход позволяет корректно работать с многобайтовыми знаками, воспринимая их как отдельные единицы. Например, некоторые специальные символы и иероглифы занимают несколько байт, поэтому их извлечение по байтам может привести к ошибкам.

Выведем на экран первый и десятый символ каждой строки файла example.txt:

 

Cut Byte by Character Position

Читайте также: Курс LFCS — часть 1: обработка текстовых потоков в Linux.

Извлечение столбцов текста по указанному разделителю

По умолчанию команда cut использует символ табуляции в качестве разделителя колонок текста. Однако, можно указать собственный символ, благодаря опции -d. В нашем файле столбцы разделены запятыми, поэтому будем использовать этот символ.

К примеру, выведем на экран второй столбец. Для этого дополнительно применим опцию -f, а в качестве ее аргумента укажем 2:

 

Чтобы отобразить в терминале несколько столбцов, перечислим их порядковые номера через запятые:

 

Cut a String by Delimiter in Linux

Отображение всех байтов или символов текста, кроме выбранных

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

 

Extracting All Fields Except One

Также выведем в терминал все байты текста, за исключением:

  • второго в каждой строке;
  • первых двух.

 

Print All Bytes or Characters Except Selected Ones

Выводы

Мы показали несколько базовых примеров использования утилиты cut для обработки текста в ОС Linux. С ее помощью Вы можете извлекать символы из строк текстового файла или входных данных.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Больше похожих постов

6 комментариев. Оставить новый

  • есть число 555-5555085797118, как из данного числа вырезать 5-7 символ, т.е. должно получиться 555-5085797115

    Ответить
  • echo 555-5555085797118 | cut -c 5-7

    Ответить
    • Vlladimir, Aidar спрашивал «как вырезать» в смысле, как убрать 5-7 символ, а всё остальное вывести.

      Ответить
  • Дмитрий
    6 мая 2020 21:13

    Есть небольшой файл, в котором перечислены файлы домашней директории (где первый столбец это имя файла), как выделить первый столбец и отделить от дальнейшей строки если в ней содержится цифра «3».

    Ответить
  • Подскажите, пожалуйста. Есть файл, в нем информация по столбцам разделена знаком «=». Я вырезал часть текста после знака, с помощью
    cut -d= -f1 orig_file.txt > /home/user/my_file.txt
    подправил. А как можно его вставить обратно?
    Пример:
    data=Данные
    name=Имя
    organisation=Организация
    и т.д.

    Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню