Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В вычислении , 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

Ссылки [ править ]

  1. ^ cut  - Справочник по командам и утилитам, спецификация Single UNIX , выпуск 7 от The Open Group
  2. ^ cut(1)  -  Руководство по основным командам FreeBSD
  3. ^ cut(1)  -  Руководство по основным командам Linux
  4. ^ IBM . «Qshell для программирования IBM System i версии 7.2» (PDF) . Проверено 5 сентября 2020 .

Внешние ссылки [ править ]

  • cut - Справочник по командам и утилитам, спецификация Single UNIX , выпуск 7 от The Open Group
  • Вырезанная страница Softpanorama .
  • Вырезать выбранные поля каждой строки файла . Портрет вырезки (1) и его историческая справка.