Вперед Назад Содержание

5. Частичный вывод файлов

Эти утилиты выводят некоторую часть входных данных.

5.1 `head': вывод первой части файла

Утилита `head' последовательно считывает файлы, указанные в качестве аргументов FILE, и выводит первые десять строк каждого файла в стандартный вывод. Если имя файла не указано, или в качестве одного из аргументов задан минус '-', `head' считывает данные из стандартного ввода.

Общая запись:

head [OPTION]... [FILE]... head -NUMBER [OPTION]... [FILE]...
Если задано более одного файла, `head' выводит однострочный заголовок вида:
==> Имя Файла <==
перед выводом информации.

`head' распознает два формата опций: новый, в котором числа являются аргументами опций (`-q -n 1'), и старый, в котором числа предшествуют символу опции (`-1q').

Утилита воспринимает следующие опции (см. так же главу 2 'Общие Опции'):

`-COUNT OPTIONS'

Эта опция распознается, только если она задана первой, т.о. OPTIONS обозначает другие опции. COUNT - это десятичное число с приписанным символом размера (`b', `k', `m', см. опцию `-c' или `l') или другим необязательным символом (`cqv'), определяющее емкость выводимых строк.

`-c BYTES' или `--bytes=BYTES'

Выводит первые BYTES байт, как начальную строку. Приписывание `b' умножает BYTES на 512, `k' - на 1024, а `m' - на 1048576.

`-n N' или `--lines=N'

Выводит первые N строк.

`-q' или `--quiet' или `--silent'

Не выводит имя файла.

`-v' или `--verbose'

Всегда выводит имя файла.

5.2 `tail': вывод заключительной части файла

Утилита `tail' последовательно считывает файлы, указанные в качестве аргументов FILE, и выводит последние десять строк каждого файла в стандартный вывод. Если имя файла не указано, или в качестве одного из аргументов задан минус '-', `tail' считывает данные из стандартного ввода.

Общая запись:

tail [OPTION]... [FILE]... tail -NUMBER [OPTION]... [FILE]... tail +NUMBER [OPTION]... [FILE]...
Если задано более одного файла, `head' выводит однострочный заголовок вида:
==> Имя Файла <==
перед выводом информации.

GNU утилита `tail' может выводить любое количество данных (некоторые другие версии `tail' не могут). Но она не имеет опции `-r' (вывод в обратном порядке), т.к. изменене порядка не имеет ничего общего с прсмотром некоторой части файла. Хотя BSD утилита `tail' (она имеет опцию `-r') может выводить в обраном порядке файлы, которе помещаютя в ее буффер (обычно 32k). GNU утилита `tac' делает это гораздо гибче и надежней.

`tail' распознает два формата опций: новый, в котором числа являются аргументами опций (`-n 1'), и старый, в котором числа предшествуют символу опции (`-1' или `+1').

Если перед опцией имеется необязательный аргумент в виде числа N с плюсом `+' впереди, `tail' вывдит файл начиная с N-ой строки.

Утилита воспринимает следующие опции (см. так же главу 2 'Общие Опции'):

`-COUNT' или `+COUNT'

Эта опция распознается, только если она задана первой. COUNT - это десятичное число с приписанным символом размера (`b', `k', `m', см. опцию `-c' или `l') или другим необязательным символом (`cfqv'). Оно задает емкость выводимых строк.

`-c BYTES' или `--bytes=BYTES'

Выводит последние BYTES байт, как завершающую строку. Приписывание `b' умножает BYTES на 512, `k' - на 1024, а `m' - на 1048576.

`-f' или `--follow'

Делает несколько последовательных попыток прочитать информацию с конца файла, предполагая, что файл растущий. Игнорируется при чтении из стандартного входа. `tail' при оработке нескольких файлов выводит заголовок, обозначая часть какого файла выводится.

`-n N' или `--lines=N'

Выводит последие N строк.

`-q' или `-quiet' или `--silent'

Не выводит имя файла.

`-v' или `--verbose'

Всегда выводит имя файла.

5.3 `split': разбивка файла в блоки определенного размера

Утилита `split' создает входные файлы содержащие последовательные разбиения входа INPUT (или стандартного входа, если INPUT опущен или заменен на `-').

Общая запись:

split [OPTION] [INPUT [PREFIX]]
По умолчанию, `split' выводит 1000 строк из INPUT (или остаток последнего разбиения), в каждый выходной файл.

Имена выходных файлов состоят из PREFIX (`x' по умолчанию) и приписанных к нему индикаторов `aa', `ab', и т.д. Об[единение выводимого упорядоченного списка файлов приведет к получению исходного файла. Если входных файлов больше 676, то `split' использует `zaa', `zab', и т.д.

Утилита воспринимает следующие опции (см. так же главу 2 'Общие Опции'):

`-LINES' или `-l LINES' или `--lines=LINES'

Составляет выходные файлы из LINES строк.

`-b BYTES' или `--bytes=BYTES'

Выводит BYTES байт из INPUT в каждый выходной файл. Приписывание `b' умножает BYTES на 512, `k' - на 1024, а `m' - на 1048576.

`-C BYTES' или `--line-bytes=BYTES'

Выводит в каждый выходной файл столько строк, сколько можно вывести без превышения BYTES байт. Если строка длинее чем BYTES байт, то `split' выводит BYTES байт из INPUT в каждый выходной файл, пока в строке не останется меньше BYTES байт, и тогда продолжаеся нормальный вывод.

5.4 `csplit': разбиение файла в блоки динамической длины

Утилита `csplit' создает несколько входных файлов содержащих последовательные разбиения входа INPUT (или стандартного входа, если INPUT опущен или заменен на `-').

Общая запись:

csplit [OPTION]... INPUT PATTERN...
Содержимое выходных файлов определяется шаблоном PATTERN, что подробно описывается ниже. Если аргумент PATTERN ссылается на несущесвующую строку входного файла, то произойдет ошибка. После каждого нахождения соответствия шаблону, все оставшиеся входные данные копируются в отдельный выходной файл.

По умолчанию, `csplit' выводит число байт скопированных в выходной файл, после создания каждого такого файла.

Существует несколько типов шаблонов:

`N'

Создает выходной файл содержащий первые N входных строк. При повторе создается еще один выходной файл содержащий следующие N входных строк. И так при каждом повторе.

`/REGEXP/[OFFSET]'

Создает выходной файл состоящий из строки входного файла, содержащей соответствие регулярному выражению REGEXP, и следующих за ней строк, вплоть до следующей такой строки. Аргумент OFFSET это целое число с `+' или `-' впереди. Если такой аргумент задан то создается выходной файл содержащий первые несколько входных строк вплоть до строки со смещением равным смещению строки, содержащей соответствие регулярному выражению REGEXP, плюс или минус OFFSET, и эта строка становится первой строкой следующего выходного блока.

`%REGEXP%[OFFSET]'

Аналогично предыдущему типу, но не создает выходной файл, а просто игнорирует рассматриваемый блок входных данных.

`{REPEAT-COUNT}'

Применяет предыдущий шаблон последовательно REPEAT-COUNT раз. REPEAT-COUNT может быть представлен положительным целым числом или звездочкой, которая значит, что повторение закончится только когда исчерпается входной поток данных.

Имена выходных файлов состоят, по умолчанию, из префикса `xx' и приписанных к нему суффиксов в виде двузначных десятичных чисел от `00' до `99'. Об[единение выводимого упорядоченного списка файлов приведет к получению исходного файла.

По умолчанию, при наличии ошибки или сигнала прерывания утилита `csplit' перед завершением работы удаляет все выходные файлы, которые она успела создать.

Утилита воспринимает следующие опции (см. так же главу 2 'Общие Опции'):

`-f PREFIX' или `--prefix=PREFIX'

Использует PREFIX как префикс имени выходного файла.

`-b SUFFIX' или `--suffix=SUFFIX'

Использует SUFFIX как суффикс имени выходного файла. Если эта опция задана, то строка суффикса должна содержать только `printf(3)'-стиль задания преобразований, возможно включая флаги установки формата, ширину поля, явные задания или все эти модификации вместе взятые. Буквенный формат должен преобразовывать двоичный целый аргумент в графическую форму, таким образом допускаются только `d', `i', `u', `o', `x', и `X' преобразования. Полный суффикс дается (вместе c текущим номером выводимого файла) в форме `sprintf(3)', которая используется для вывода суффикса каждого отдельно выводимого файла. При использовании этой опции игнорируется опция `--digits'.

`-n DIGITS' или `--digits=DIGITS'

Использует DIGITS знаков для вывода суффикса имени выходного файла, вместо двух по умолчанию.

`-k' или `--keep-files'

Не удаляет выходные файлы при ошибке.

`-z' или `--elide-empty-files'

Подавляется вывод пустых файлов. Всегда, когда эта опция определена последовательность номеров выходных файлов начинается с нуля.

`-s' или `-q' или `--silent' или `--quiet'

Не сообщает размеры выводимых файлов.


Вперед Назад Содержание