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

3. Вывод файлов

Эти команды получают и выводят файлы, некоторым образом изменяя их.

3.1 cat: сцепка (конкатенация) и вывод файлов

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

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

cat [OPTION] [FILE]...
Утилита воспринимает следующие опции (см. так же главу 2 'Общие Опции'):
`-A' или `--show-all'

Эквивалентно `-vET'.

`-b' или `--number-nonblank'

Нумерует все непустые выходные строки, начиная с 1.

`-e'

Эквивалентно `-vE'.

`-E' или `--show-ends'

Выводит '$' вконце каждой строки.

`-n' или `--number'

Нумерует все выходные строки, начиная с 1.

`-s' или `--squeeze-blank'

Совмещает смежные пустые строки в одну пустую строку.

`-t'

Эквивалентно `-vT'.

`-T' или `--show-tabs'

Выводит символы табуляции как `^I'.

`-u'

Необходима для совместимости с UNIX.

`-v' или `--show-nonprinting'

Выводит котрольные символы, кроме LFD и TAB, ипользуя `^' и предстоящие символы, которые имеют старший бит устанавливаемый `M-'.

3.2 `tac': объединие и вывод файлов в обратном порядке

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

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

tac [OPTION]... [FILE]...
Записи разделяются некоторым набором символов (по умолчанию символом перевода строки).

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

`-b' или `--before'

Разделитель приписывается к началу записи, перед которой он стоит в файле. По умолчанию он приписывается к концу записи, после которой он стоит.

`-r' или `--regex'

Трактует набор символов разделителя как регулярное выражение.

`-s SEPARATOR' или `--separator=SEPARATOR'

Использует SEPARATOR как изображение разделителя, вместо символа перевода строки.

3.3 `nl': нумерация строк выводимых файлов

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

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

nl [OPTION]... [FILE]...
`nl' разделяет получаемые данные на логические страницы; по умолчанию, нумерация каждой страницы начинается с 1. `nl' воспринимает все входные файлы как единый блок и проводит разбиение независимо от расположения файлов.

Логическая страница состоит из трех частей: заголовка, тела и хвоста. Любая часть может быть пуста. Типы их нумерации могут отличаться.

Начала частей логических страниц выделяются во входном файле одной из следующих строк-разделителей:

Два символа, из которых состоят эти строки, можно изменить с помощью опций (см. ниже), но порядок и количество изменить нельзя.

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

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

`-b STYLE' или `--body-numbering=STYLE'

Выбирает STYLE - стиль нумерации строк в теле каждой страницы. Если строка не нумеруется то текущий номер строки не увеличивается, но строка-разделитель нумеруется всегда. Существуют следующие стили:

`a'

нумерует все строки,

`t'

нумерует только непустые строки (по умолчанию определено для тела),

`n'

не нумерует строки (по умолчанию определено для заголовка и хвоста),

`pREGEXP'

нумерует строки содержащие соответствие регулярному выражению REGEXP.

`-d CD' или `--section-delimiter=CD'

Определяет CD как изображение разделителя; по умолчанию `\:'. Если указано только C, то второй символ будет `:'. Не забудьте защитить символ `\' кавычками или добавочной обратной косой чертой от интерпретации его оболочкой.

`-f STYLE' или `--footer-numbering=STYLE'

Аналогично `--body-numbering'.

`-h STYLE' или `--header-numbering=STYLE'

Аналогично `--body-numbering'.

`-i NUMBER' или `--page-increment=NUMBER'

Увеличивает номера строк на NUMBER (по умолчанию на 1).

`-l NUMBER' или `--join-blank-lines=NUMBER'

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

`-n FORMAT'

`--number-format=FORMAT'

Выбирает FORMAT формат нумерации (по умолчанию `rn'):

`ln'

выравнивание слева, без предстоящего нуля;

`rn'

выравнивание справа, без предстоящего нуля;

`rz'

выравнивание справа, с предстоящим нулем;

`-p' или `--no-renumber'

Отменяет сбрасывание текущего номера строки в начале логической страницы.

`-s STRING' или `--number-separator=STRING'

Отделяет номер строки от текста набором символов STRING (по умолчанию TAB).

`-v NUMBER' или `--first-page=NUMBER'

Устанавливает исходный номер - NUMBER строки для каждой страницы (по умолчанию 1).

`-w NUMBER' или `--number-width=NUMBER'

Использует NUMBER символов для номера строки (по умолчанию 6).

3.4 `od': вывод файлов в восьмеричном и других форматах

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

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

od [OPTION]... [FILE]... od -C [FILE] [[+]OFFSET [[+]LABEL]]
Каждая строка содержит выходное смещение и следующий за ним блок данных. По умолчанию смещение выводится в восьмеричном формате, а каждый блок данных, т.е. два входных байта, как единое восмеричное число.

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

`-A RADIX' или `--address-radix=RADIX'

Выбирает систему счисления - RADIX в которой выводится смещение. Система может быть одной из следующих:

`d'

десятичная;

`o'

восьмеричная;

`x'

шеснадцатиричная;

`n'

никакая (смещение не выводится).

По умолчанию восьмеричная.
`-j BYTES' или `--skip-bytes=BYTES'

Не обрабатывает первые BYTES входных байт. Если BYTES начинается с `0x' или с `0X', оно интерпретируется как шестнадцатиричное число; если с `0' то как восьмеричное; иначе, как десятичное. Приписывание `b' умножает BYTES на 512, `k' - на 1024, а `m' - на 1048576.

`-N BYTES' или `--read-bytes=BYTES'

Выводит не менее BYTES входных байт. Различные символы перед и после BYTES интерпретируются как в опции `-j'.

`-s [N]' или `--strings[=N]'

Выводит только "строковые константы", т.е. не меньше N (3 по умолчанию) последовательных графических символа ASCII, следующих за пустым (нулевым) байтом.

`-t TYPE' или `--format=TYPE'

Выбирает формат вывода данных. Если Вы включаете в TYPE более одного индикатора типа, или используете эту опцию больше одного раза, `od' выведет несколько копий каждой выходной строки, используя каждый выбранный тип в заданном порядке. TYPE - это набор из одного или более следующих символов-индикаторов:

`a'

именованный символ,

`c'

ASCII символ или символ с предстоящей обратной косой чертой,

`d'

десятичное со знаком,

`o'

восьмеричное,

`u'

десятичное без знака,

`x'

шестнадцатиричное.

Тип `a' выводит `sp' для обозначения пробела, `nl' для перевода строки, и `nul' для нулевого байта. Тип `c' выводит ` ', `\n', и `\0', соответственно.

Исключая типы `a' и `c', Вы можете задать количество байт необходимое для интерпретации любого числа в заданном типе данных, поставив нужное десятичное целое после индикатора типа. Или же Вы можете задать размер одного из втроенных в СС (Cи компилятор) типов данных, поставив после индикатора типа один из следующих символов. Для целых (`d', `o', `u', `x'):

`C'

char,

`S'

short,

`I'

int,

`L'

long.

Для чисел с плавающей точкой (`f'):
D

double,

L

long double.`-v' или `--output-duplicates'

Выводит тождественные последовательные строки. По умолчанию, из нескольких тождественных последовательных строк, `od' выводит только первую строку, а вместо каждой из остальных выводит строку содержащую только звездочку.
`-w[N]' или `--width[=N]'

Выводит N входных байт как выходную строку. Это должно быть число кратное наименьшему общему кратному размеров заданных типов вывода. Если N не указано, то по умолчанию 32. Если опция вообще не упоминается то 16. Следующие несколько опций относятся к старому, до-POSIX формату.

Но GNU утилита `od' воспринимает любые комбинации опций старого и нового стилей.

`-C' или `--traditional'

Позволяет узнавать до-POSIX аргументы (не опции!) которые `od' должен воспринимать по традиции.

Следующую запись:

od --traditional [FILE] [[+]OFFSET[.][b] [[+]LABEL[.][b]]]
можно использовать для задания одного файла и необязательных аргументов, определяющих смещение - OFFSET и адрес псевдостарта - LABEL. Смещение - OFFSET интерпретируется как восьмеричное число, показывающее сколько входных байт нужно пропустить перед форматированием и выводом. Точка после смещения позволяет интерпретировать его как десятичное число. Если число не десятиное и начинается с `0x' или с `0X', оно интерпретируется как шестнадцатиричное; если с `0' то как восьмеричное. Приписывание `b' умножает OFFSET на 512, `k' - на 1024, а `m' - на 1048576. LABEL интерпретируется так же, но задает начальный псевдо-адресс. Псевдо-адресс изображается в скобках после обычного адреса.


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