Команда 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 -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