CUT(1)
НАЗВАНИЕ
cut - команда выборки отдельных полей из строк файла
СИНТАКСИС
cut -cсписок [файл ...]
cut -fсписок [-dсимвол] [-s] [файл ...]
ОПИСАНИЕ
Команда cut используется для выборки колонок из таблицы
или полей из каждой строки файла; если применить терминологию баз данных, команда cut выполняет операцию проекции отношения. Поля, специфицированные списком, могут
быть фиксированной длины, то есть расположенные как на
перфокарте (опция -c), или переменной длины, изменяющейся от строки к строке; в этом случае границей поля
является символ-разделитель, например, символ табуляции
(опция -f). Команду можно использовать как фильтр: если
не указано ни одного файла или задано имя -, используется стандартный ввод. Результат всегда поступает на
стандартный вывод.
Смысл опций команды cut таков:
- список
- Список целых номеров полей в возрастающем порядке,
перечисленных через запятую; возможен символ - для
указания интервалов; например, 1,4,7; 1-3,8; -5,10
(сокращение для 1-5,10); 3 (обозначение для интервала от 3 до последнего поля).
- -cсписок
- Список, следующий за -c (без пробела), специфицирует позиции символов (например, опция -c1-72 задает первые 72 символа каждой строки).
- -fсписок
- Список, следующий за -f (без пробела), является
списком номеров полей; предполагается, что поля
разделены в файле символом-разделителем (см. опцию
-d); например, -f1,7 копирует только первое и
седьмое поля. Если не задана опция -s, то строки,
не содержащие разделителей, копируются в результат
без всякой обработки (используется для ведения
подзаголовков таблиц).
- -dсимвол
- Символ, следующий за -d (без пробела), является
разделителем полей (только в случае опции -f). По
умолчанию разделителем является символ табуляции.
Пробел или другие символы, имеющие специальное
значение для интерпретатора команд shell, должны
заключаться в кавычки.
- -s
- Игнорировать строки без символов-разделителей в
случае опции -f. Если опция не задана, то строки
без разделителей копируются в результат без обработки.
Одна из опций -c или -f должна быть задана обязательно.
Для осуществления горизонтальной проекции содержимого
файла по контексту используйте команду grep(1); для горизонтального соединения файлов - команду paste(1).
Чтобы переупорядочить столбцы в таблице, используйте
команды cut и paste.
ПРИМЕРЫ
- Поставить в соответствие идентификаторам пользователей их входные имена:
cut -d: -f1,3 /etc/passwd
- Присвоить переменной name входное имя текущего пользователя:
name=`who am i | cut -f1 -d" "`
СМ. ТАКЖЕ
grep(1), paste(1).
ДИАГНОСТИКА
- ERROR: line too long
- Строка имеет более 511 символов или полей.
- ERROR: bad list for c/f option
- Не задана опция -c или -f или неверно специфицирован список. Ошибки не происходит, если строка имеет меньше полей, чем указано в списке.
- ERROR: no fields
- Список пуст.
- ERROR: no delimeter
- После опции -d не задан символ.
- ERROR: cannot handle multiple adjacent backspaces
- Смежные символы забоя не могут быть корректно обработаны.
- WARNING: cannot open файл
- Файл либо не доступен на чтение, либо не существует. Если задано несколько файлов, обработка продолжается.