Автор (ы) оригинала | AT&T Bell Laboratories |
---|---|
Разработчики) | Различные разработчики с открытым исходным кодом и коммерческие разработчики |
изначальный выпуск | Февраль 1985 г . |
Операционная система | Unix , Unix-подобный , IBM i |
Платформа | Кроссплатформенность |
Тип | Командование |
Лицензия | coreutils : GPLv3 + |
В вычислении , cut
является командной строки утилиту на Unix и Unix-подобных операционных систем , которая используется для извлечения секции из каждой строки ввода - обычно из файла . В настоящее время он является частью пакета GNU coreutils и базовой системы BSD .
Извлечение сегментов линии обычно выполняется с помощью байтов ( -b
), символов ( -c
) или полей ( -f
), разделенных разделителем ( по умолчанию -d
- символ табуляции ). В каждом случае должен быть указан диапазон, состоящий из одного из N
, N-M,
N-
( N
до конца строки) или -M
(от начала строки до M
), где N и M отсчитываются от 1 (нулевое значение отсутствует). Начиная с версии 6, выдается ошибка, если вы включаете нулевое значение. До этого значение игнорировалось и принималось равным 1.
История [ править ]
cut
является частью X / Open Portability Guide, начиная с выпуска 2 1987 года. Он был унаследован от первой версии POSIX.1 и Single Unix Specification . [1] Впервые он появился в системе AT&T System III UNIX в 1982 году. [2]
Встроенная cut
в GNU coreutils версия была написана Дэвидом М. Игнатом, Дэвидом Маккензи и Джимом Мейерингом. [3]
Команда cut также была перенесена в операционную систему IBM i . [4]
Примеры [ править ]
Предположим, что файл с именем " file
" содержит строки:
foo: bar: baz: qux: quuxодин два три четыре пять шесть семьальфа: бета: гамма: дельта: эпсилон: дзета: эта: тета: йота: каппа: лямбда: мюБыстрая коричневая лиса прыгает через ленивую собаку
Чтобы вывести символы с четвертого по десятый в каждой строке:
$ Покрой -с 4 -10 файл : бар: ба : два: е га: бета Быстрый
Чтобы вывести пятое поле до конца строки каждой строки с использованием символа двоеточия в качестве разделителя полей:
$ cut -d ":" -f 5 - файл quux five: six: seven epsilon: zeta: eta: theta: iota: kappa: lambda: mu быстрая коричневая лисица перепрыгивает через ленивого пса
(обратите внимание, что, поскольку символ двоеточия не найден в последней строке, отображается вся строка)
Опция -d
указывает односимвольный разделитель (в приведенном выше примере это двоеточие), который служит разделителем полей. Опция, -f
определяющая диапазон полей, включаемых в вывод (здесь поля от пяти до конца). Вариант -d
предполагает использование опции -f
.
Чтобы вывести третье поле каждой строки с использованием пробела в качестве разделителя полей:
$ cut -d "" -f 3 файл foo: bar: baz: qux: quux one: two: three: four: five: six: seven alpha: beta: gamma: delta: epsilon: zeta: eta: theta: iota: каппа: лямбда: мю коричневый
(Обратите внимание, что, поскольку пробел отсутствует в первых трех строках, отображаются все строки.)
Чтобы разделить два слова с любым разделителем:
$ line = process.processid $ cut -d "." -f1 <<< $ line process $ cut -d "." -f2 <<< $ line processid
Синтаксис [ править ]
вырезать [-b список] [-c список] [-f список] [-n] [-d разделитель] [-s] [файл]
Можно использовать следующие флаги:
- -b
- Байты; список, следующий за -b, определяет диапазон байтов, которые будут возвращены, например , вернут первые 66 байтов строки. NB. Если используется вместе с -n , многобайтовые символы не будут разделены. NNB. -b будет работать только с входными строками менее 1023 байта
cut -b1-66
- -c
- Символы; список, следующий за -c, определяет диапазон символов, которые будут возвращены, например , вернет первые 66 символов строки
cut -c1-66
- -f
- Задает список полей, разделенных разделителем
- список
- Список полей с целочисленными обозначениями, разделенных запятыми или пробелами, в последовательном порядке. Индикатор - может быть предоставлен как сокращение для включения диапазонов полей, например 4-6 для диапазонов 4-6 или 5- как сокращение для поля 5 до конца и т. Д.
- -n
- Используется в сочетании с -b, подавляет разбиение многобайтовых символов
- -d
- Разделитель; символ, следующий сразу за параметром -d, является разделителем поля для использования вместе с параметром -f ; разделителем по умолчанию является табуляция . Пробелы и другие символы со специальным значением в контексте используемой оболочки должны быть заключены в кавычки или экранированы по мере необходимости.
- -s
- Обходит строки, которые не содержат разделителей полей , если указано -f , если не указано иное.
- файл
- Файл (и, если необходимо, сопровождающий путь) для обработки в качестве входных данных. Если файл не указан, будет использоваться стандартный ввод .
См. Также [ править ]
- Список команд Unix
- grep
- вставить (Unix)
- sed
- awk
Ссылки [ править ]
- ^ - Справочник по командам и утилитам, спецификация Single UNIX , выпуск 7 от The Open Group
- ^ - Руководство по основным командам FreeBSD
- ^ - Руководство по основным командам Linux
- ^ IBM . «Qshell для программирования IBM System i версии 7.2» (PDF) . Проверено 5 сентября 2020 .
Внешние ссылки [ править ]
В Wikibook Guide to Unix есть страница на тему: Команды |
- - Справочник по командам и утилитам, спецификация Single UNIX , выпуск 7 от The Open Group
- Вырезанная страница Softpanorama .
- Вырезать выбранные поля каждой строки файла . Портрет вырезки (1) и его историческая справка.