Команда cut

Команда cut позволяет использовать одноименную утилиту, предназначенную для выделения фрагментов текстовой строки.

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

$ cut [параметры]

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

Примеры использования

Извлечение фрагментов строки

В качестве примера рассмотрим следующую текстовую строку и предположим, что нам нужно извлечь лишь третье и шестое слово:

foo,bar,baz,stuff,blah,oogabooga

Для этой цели может использоваться следующая команда:

$ echo "foo,bar,baz,stuff,blah,oogabooga" | cut -d ',' -f 3,6

В результате будет получен следующий вывод:

baz,oogabooga

Извлечение нескольких столбцов из вывода утилиты ls

Возможно, вам понадобится извлечь из вывода команды ls -l столбцы с правами доступа, размерами и именами файлов. Ниже приведен пример вывода команды ls -l:

$ ls -l
-rw-r--r--    1 pete     users        65767 Mar  5 17:36 school.pdf
-rw-------    1 pete     users        34552 Mar  5 17:36 soup.jpg
-rw-rw-r--    1 pete     users           63 Mar  5 17:36 taxes.txt

В первую очередь следует воспользоваться утилитой tr для замены последовательностей символов пробелов на одиночные символы пробела:

$ ls -l | tr -s ' '
-rw-r--r-- 1 pete users 65767 Mar 5 17:36 school.pdf
-rw------- 1 pete users 34552 Mar 5 17:36 soup.jpg
-rw-rw-r-- 1 pete users 63 Mar 5 17:36 taxes.txt

А теперь ничто не мешает использовать утилиту cut для выделения указанных столбцов, разделенных с помощью символов пробела:

$ ls -l | tr -s ' ' | cut -d' ' -f 1,5,9
-rw-r--r-- 65767 school.pdf
-rw------- 34552 soup.jpg
-rw-rw-r-- 63 taxes.txt