В настоящее время актуальный стандарт - это POSIX 2008 и его дополнение POSIX 1003.13 |
Средства обработки структурированных данных
pr [+номер_страницы] [-число_столбцов] [-adFmrt] [-e[символ][число]] [-h заголовок] [-i[символ][число]] [-l число_строк] [-n[символ][ширина]] [-o отступ] [-s[символ]] [-w ширина] [файл ...]
является фильтром для печати и оформления страниц. По умолчанию выдача разбивается на страницы, каждая из которых содержит в пятистрочном заголовке свой номер, дату, время и имя файла. Длина страницы 66 строк, включая пять пустых строк хвостовика.
Утилита pr обрабатывает следующие аргументы командной строки.
+номер_страницы
Начать вывод со страницы с заданным номером (по умолчанию с первой).
-число_столбцов
Вывод в заданное число столбцов (по умолчанию в один). При выводе в несколько столбцов автоматически действуют опции -e и -i. Этот аргумент несовместим с опцией -m.
-a
Выдача в несколько столбцов с упорядочением по строкам. Например, если заказана печать в два столбца, первая исходная строка попадает в первый столбец, вторая - во второй, третья - снова в первый и т.п.
-d
Выдача через строку.
-e[символ][число]
Установка табуляции через заданное число позиций, начиная с первой. Символы табуляции во входном файле развертываются в соответствующее количество пробелов. Если задан любой нецифровой символ, он трактуется как символ табуляции во входном файле.
-F
Применять символы перехода к новой странице (по умолчанию переход на новую страницу осуществляется при помощи последовательности переводов строк).
-h заголовок
Использовать заданный заголовок (по умолчанию в качестве заголовка выступает имя исходного файла).
-i[символ][число]
При выводе, где это возможно, последовательности пробельных символов заменяются символами табуляции, при условии, что табуляции установлены через заданное число позиций, начиная с первой. Если задан любой нецифровой символ, он выводится в качестве символа табуляции.
-l число_строк
Установка длины страницы (по умолчанию 66 строк).
-m
Слияние и печать всех файлов параллельно, по одному в столбце. Реализация должна поддерживать слияние по крайней мере девяти файлов.
-n[символ][ширина]
Производится нумерация строк. Под номер отводится поле заданной ширины (по умолчанию - 5). Если задан любой нецифровой символ, то он присоединяется к номеру строки, отделяя ее от последующего текста (подразумеваемым значением является символ табуляции).
-o отступ
Установка отступа слева на заданное число позиций. Количество позиций в каждой строке есть сумма ширины и отступа.
-p
Пауза перед выдачей каждой страницы, если вывод назначен на терминал ( pr включит звонок и будет ждать нажатия клавиши возврата каретки).
-r
Подавление диагностических сообщений при ошибках открытия файлов.
-s[символ]
Разделение столбцов единственным символом (по умолчанию - табуляцией), а не соответствующим количеством пробелов.
-t
Подавление выдачи пятистрочного идентифицирующего заголовка и такого же размера хвостовика, сопровождающих обычно каждую страницу.
-w ширина
Установка ширины строки (по умолчанию - 72 позиции). Эта опция действует только при печати в несколько столбцов.
В качестве примера использования служебной программы pr приведем конвейер, позволяющий получить пронумерованный список всех файлов текущего каталога:
ls -a | pr -2 -a -l 24 -n' '3 -h "Список\ файлов каталога $(pwd)"
Начальный фрагмент результата может выглядеть так, как показано в листинге 6.5.
2003-10-17 17:24 Список файлов каталога /var/tmp Page 1 1 . 2 .. 3 Blank.ReS 4 Make45.ReS 5 Make46.ReS 6 from_cvs 7 gcc-20032204 8 gcc-3.4-16-jun-2003 9 htdocs 10 rpm-tmp.29785 . . .Листинг 6.5. Начальный фрагмент возможного результата работы служебной программы pr.
Для подсчета числа символов, слов и строк в файлах служит утилита wc:
wc [-c | -m] [-w] [-l] файл ...
Опция -c предписывает подсчитывать байты, -m - символы, -w - слова, -l - строки. По умолчанию подсчитываются символы, слова и строки. Если в командной строке задано несколько файлов, помимо результатов для каждого из них выводятся также суммарные показатели.
Рассмотрим пример. Предположим, что результаты, показанные в листинге 6.3, сохранены в файле ascii.od. Тогда команда, приведенная в листинге 6.6, выдаст результат, показанный в листинге 6.7.
wc ascii.odЛистинг 6.6. Пример использования утилиты wc.
9 137 575 ascii.odЛистинг 6.7. Возможный результат использования утилиты wc.
Иными словами, в указанном файле 575 символов, 137 слов, расположенных на 9 строках.