Linux. Команда cut

20.02.2018

Теги: BashCLILinuxКоманда

Команда cut предназначена для извлечения (буквально «вырезания») различных полей данных из файла. Если не указано ни одного файла или задано имя «-», используется стандартный ввод. Результат всегда поступает на стандартный вывод. Самый простой вариант команды выглядит так:

$ cut -cсимволы файл

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

Этот набор символов может состоять из одного числа, например -c5 для извлечения пятого символа из каждой строки. Это может быть список чисел, разделенных запятыми, например -c1,7,12 для извлечения символов 1, 7 и 12. Или, это может быть диапазон чисел, указываемых через дефис, например -c20-50 для извлечения символов от 20 до 50 включительно. Чтобы извлечь символы до конца строки, второе число в диапазоне можно не указывать.

Рассмотрим пример

$ cat example.txt
123456789
ABCDEFGHI
abcdefghi
$ cut -c2-5 example.txt
2345
BCDE
bcde
$ cut -c3,5,8 example.txt
358
CEH
ceh
$ cut -c6- example.txt
6789
FGHI
fghi

Опции -d и -f

Рассмотрим в качестве примера содержимое /etc/passswd

$ head /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

Если данные разделяются конкретным символом, извлечь их можно, используя опции -d и -f:

$ cut -dсимвол -fполе файл

Получаем имена пользователей из файла /etc/passwd:

$ cut -d: -f1 /etc/passwd
root
daemon
bin
sys
sync
..........

Имена пользователей и домашние директории

$ cut -d: -f1,6 /etc/passwd
root:/root
daemon:/usr/sbin
bin:/bin
sys:/dev
sync:/bin
..........

Если опция -d не указана, по умолчанию используется символ табуляции.

Справка по команде

$ cut --help
Использование: cut ПАРАМЕТР… [ФАЙЛ]…
Печатает выбранные части строк из каждого ФАЙЛА на стандартный вывод.

Если ФАЙЛ не задан или задан как -, читает стандартный ввод.

Аргументы, обязательные для длинных параметров, обязательны и для коротких.

  -b, --bytes=СПИСОК             выбрать только заданные байты
  -c, --characters=СПИСОК        выбрать только заданные символы
  -d, --delimiter=РАЗДЕЛИТЕЛЬ    использовать для разделения полей РАЗДЕЛИТЕЛЬ
                                 вместо табуляции
  -f, --fields=СПИСОК            выбрать только заданные поля; также печатать
                                 все строки, не содержащие разделителей, если
                                 только не задан параметр -s
  -n                             (игнорируется)
      --complement               дополнить множество выбранных байт, символов
                                 или полей
  -s, --only-delimited           не печатать строки, не содержащие
                                 разделителей
      --output-delimiter=СТРОКА  использовать СТРОКУ для разделения полей при
                                 выводе, по умолчанию используется разделитель
                                 для ввода
  -z, --zero-terminated    разделитель строк NUL, а не символ
                           новой строки
      --help     показать эту справку и выйти
      --version  показать информацию о версии и выйти

Используйте один и только один из параметров: -b, -c или -f.  СПИСКИ
состоят из диапазона или нескольких диапазонов, разделенных запятыми.
Выбранные части входного файла печатаются в том порядке, в котором они
появляются на входе, и печатаются ровно один раз.

Диапазоны задаются следующим образом:
  Н     Н-ный байт, символ или поле; отсчитывается от 1
  Н-    от Н-ного байта, символа или поля до конца строки
  Н-М   от Н-ного до М-ного (включительно) байта, символа или поля
  -М    от первого до М-ного (включительно) байта, символа или поля

Поиск: Bash • CLI • Linux • Команда • cut

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.