[ Содержание ]
Программа cut выбирает столбцы из каждой строки структурированных текстовых файлов.
cut [параметры] [файл]...
Если при вызове программы не указывается файл, cut берет данные со стандартного ввода.
Программа может выбирать информацию как по символам, так и по столбцам. В первом случае следует использовать параметр –c, во втором параметр –f.
По умолчанию символом разделителем полей считается символ табуляции. Если в файле использовался другой символ разделитель, при вызове cut необходимо явно передавать параметр –d с указанием символа разделителя в файле. Например, нам необходимо получить только первые десять символов в каждой строке выдаваемой программой ls с опцией –l (права доступа к файлам). Тогда выполняемая команда будет выглядеть следующим образом:
$ ls -l | cut -c 1-10 итого 4710 -rw------- -rw-r--r-- -rw-r--r-- -rw-r--r-- -rw-r--r-- -rw-r--r-- $
1-10 — это диапазон символов, которые необходимо оставить в каждой строке. Можно использовать различные варианты записи диапазона. Например:
$ ls -l | cut -c -15 итого 47104 -rw------- 1 a -rw-r--r-- 1 a -rw-r--r-- 1 a -rw-r--r-- 1 a -rw-r--r-- 1 a -rw------- 1 a drwxr-xr-x 2 a $
Если не указана начальная позиция, значит данные берутся с начала строки. Если не указать последнюю позицию, то до конца строки:
$ ls -l | cut -c 15- artur users 56648 2003-06-21 09:44 checkinstall-1.5.3-81.tgz artur users 3347423 2005-01-27 11:27 clamav-0.81.tar.gz artur users 255 2005-01-13 00:51 packages.html artur users 736882 2004-11-19 20:37 SE_VGA_EN\ -\ ARMV4.exe artur ftp 5510 2004-11-14 12:16 vmware.sxw artur users 56416 2004-04-19 19:27 vw_2002_maintenance.pdf artur users 4096 2005-04-21 09:44 XServer_cygwin/ $
В предыдущих примерах cut брала данные со стандартного ввода, но в качестве источника данных можно использовать любой файл. Например, необходимо выбрать из файла /etc/passwd информацию о том, какая программа у пользователей будет запускаться при его входе в систему.
Логин пользователя — первое поле, программа — седьмое. Символ разделитель полей в файле passwd — двоеточие. Чтобы ограничить количество строк при выводе, посмотрим данные только по последним четырём пользователям.
$ cut -f 1,7 -d: /etc/passwd | tail -4 user13:/bin/bash user14:/bin/bash artur:/bin/bash oldap:/bin/false $
Как видно из примера, для того, чтобы cut обрабатывала поля, ей был передан параметр –f с указанием номеров полей. Мы не использовали диапазон, как это было в примере с параметром –c. Если необходимо указать конкретные поля или символы, их следует перечислить через запятую.
При помощи параметра –d мы явно определили символ разделитель полей. В нашем примере — это двоеточие.
Если в качестве разделителя необходимо использовать пробел, тогда параметр –d будет выглядеть следующим образом: –d ' '.
[ Содержание ]