ryg

Утилита cut в терминале Mac OS X и bash

Синтаксис:

     cut -b list [-n] [file ...]
     cut -c list [file ...]
     cut -f list [-d delim] [-s] [file ...]

Описание:

Утилита cut отрезает выбранную часть каждой строки (как определено параметром list) из каждого файла и выводит результат в стандартный вывод. Если не указать имя файла (параметр file) или вместо имени файла указать прочерк (знак минус "-") - утилита будет считывать данные из стандартного ввода. Значение указанные в параметре list могут означать номера колонок или указывать на специальные символы разделители. Нумерация колонок начинается с 1.

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

Параметры:

-b list  Список позиций определяемых побайтно.
-c list  Список позиций определяемых посимвольно.
-d delim  Использовать символ, указанный вместо delim в качестве разделителя колонок
 -f list list - список определённых полей, разделённых разделителем (аналогично параметру -d). Выводимые поля также разделяются символом-разделителем 
-n  Не разбивать многобайтовые символы. Символы будут выведены если они вошли целиком в поле (входит последний байт)
-s Скрывать строки, не имеющие символов разделителей. Если данный параметр не указан, то строки без символов-разделителей выводятся без изменений.

Возвращаемое значение:

В случае успешного завершения возвращается ноль, а в случае ошибки значение больше нуля.

Утилита впервые появилась в операционной системе AT&T System III UNIX и соответствует стандарту IEEE Std 1003.2-1992 (``POSIX.2'').

Примеры:

Вырезает из вывода команды who дату

who | cut -c 1-16,25-38

Следующая команда выведет расширения файлов (значение после первого символа "."), если файл не имеет расширения или это папка он будет выведен без изменений:

ls -1| cut -d . -f 2

А в случае использования параметра -s они будут опущены:

ls -1| cut -d . -f 2 - s
Вывести имена всех файлов и папок, имеющих в своем имени символ точки:
ls -1| cut -d . -f 1-
         
Удалить все содержимое, в каждой строке после символа '*' и вывести в file2
cut -d* -f 1 file1 >file2

Использованные и смежные команды

ls      - вывести список файлов в папке/папках
who   - вывести список пользователей работающих в системе
bash  -среда интерпретатора командного языка
paste - соединить строки в файлах

Весь список команд терминала Mac OS X