PG(1)

НАЗВАНИЕ
pg - фильтр для просмотра файлов на экране

СИНТАКСИС


	pg  [-число] [-p пригл] [-c] [-e] [-f] [-n] [-s] [+номер_строки]

	    [+/шаблон/] [файл ...]

ОПИСАНИЕ
Команда pg позволяет просматривать файлы страницами, равными по размеру экрану. Если имена файлов не заданы или задан символ -, то просматривается стандартный ввод. После вывода очередной страницы следует приглашение. Если пользователь нажмет клавишу возврата каретки, то будет выведена очередная страница; остальные возможности перечислены ниже.

Эта команда отличается от других команд страничного просмотра тем, что позволяет возвращаться по тексту назад. Как это делается - описано ниже.

Для определения характеристик терминала команда pg просматривает базу данных terminfo(4) для типа терминала, заданного переменной окружения TERM. Если переменная TERM не определена, предполагается, что тип терминала - dumb.

Опции команды:

-число Целое число, задающее размер (в строках) страницы, которое следует использовать вместо значения по умолчанию. (На терминале, содержащем 24 строки, подразумеваемый размер страницы равен 23.)
-p пригл Изменение текста приглашения на пригл. Если строка приглашения содержит %d, то при выводе первая пара символов %d будет заменена номером текущей страницы. Строка приглашения по умолчанию состоит из единственного символа :.
-c Возврат курсора в начало и очистка экрана перед выводом каждой страницы. Эта опция игнорируется, если для данного типа терминала в базе данных terminfo(4) не определена операция очистки экрана clear_screen.
-e Исключение пауз при переходе к следующему файлу.
-f Обычно команда pg расщепляет строку, если она не помещается на экране, однако расщепление некоторых последовательностей символов отображаемого текста (например, управляющих последовательностей, служащих для подчеркивания) дает нежелательный эффект. Опция -f подавляет расщепление строк.
-n Обычно ввод команды с клавиатуры завершается нажатием клавиши перевода строки. Эта опция вызывает автоматический ввод команды, как только будет введена командная буква.
-s Отображение всех сообщений и приглашений особым образом (обычно в негативе).
+номер_строки Указание номера_строки, с которого следует начинать просмотр.
+/шаблон/ Указание шаблона для поиска строки, с которой начинается просмотр.

Команды, допустимые когда pg делает паузу между страницами, можно разделить на три группы: команды продолжения просмотра, поиска и изменения режима просмотра.

Перед командами продолжения просмотра может задаваться адрес - число, возможно со знаком, показывающее, с какого места файла продолжать просмотр. Этот адрес, в зависимости от команды, интерпретируется в единицах либо страниц, либо строк. Адрес со знаком задает точку относительно текущей страницы или строки, а адрес без знака - относительно начала файла. Для каждой команды существует адрес по умолчанию, который используется при отсутствии явного задания.

Команды продолжения просмотра и значения их аргументов по умолчанию:

(+1)перевод_строки
Вывод на экран очередной страницы. Адрес задается в страницах.

(+1)l
Если задан относительный адрес, моделируется дви жение по файлу на заданное количество строк. Если задан абсолютный адрес, экран заполняется начиная с указанной строки.

(+1)d или CTRL+D
Перемещение на пол-экрана вперед или назад.

Следующие команды адреса не требуют.

. или CTRL+L
Повторный вывод текущей страницы текста.

$
Вывод последней полной страницы файла. Необходимо соблюдать осторожность, если ввод выполняется через канал.

Перейдем к командам, предназначенным для поиска по шаблонам. Можно использовать регулярные выражения, описанные в команде ed(1). Они должны обязательно заканчиваться символом перевода строки, даже если задана опция -n.

i/шаблон/
Поиск вперед до i-го (по умолчанию i = 1) появления шаблона. Поиск начинается сразу после текущей страницы и продолжается до конца файла, без перехода в начало.

   i^шаблон^

   i?шаблон?

Поиск назад до i-го (по умолчанию i = 1) появления шаблона. Поиск начинается сразу перед текущей страницей и продолжается до начала файла, без перехода в конец. Обозначение ^ предусмотрено для терминалов Adds 100, которые некорректно манипулируют символом ?.

Обычно найденная строка оказывается вверху экрана. Добавление символов m или b к команде поиска приведет к тому, что найденная строка окажется в центре или внизу экрана. Для восстановления исходной ситуации можно использовать суффикс t.

Пользователь команды pg может модифицировать режим просмотра следующими командами:

in
Начать работу с i-м следующим файлом командной строки; i - число без знака, по умолчанию 1.

ip
Начать работу с i-м предыдущим файлом командной строки; i - число без знака, по умолчанию 1.

iw
Продвинуться по файлу на размер окна. Если i задано, то размер окна устанавливается равным i.

s файл
Сохранить входную информацию в заданном файле. Сохраняется только текущий просматриваемый файл. Пробел между s и файлом необязателен. Эта команда должна заканчиваться символом перевода строки, даже если задана опция -n.

h
Вывести справку о доступных командах.

q или Q
Закончить просмотр файлов.

!команда
Команда передается интерпретатору, имя которого представляет собой значение переменной окружения SHELL. Если она недоступна, то выбирается интерпретатор по умолчанию. Эта команда должна всегда заканчиваться символом перевода строки, даже если задана опция -n.

В процессе вывода на терминал пользователь может в любой момент нажать клавиши завершения или прерывания [см. stty(1)]. В результате этого вывод будет прекращен и появится приглашение. После этого пользователь может ввести одну из вышеперечисленных команд обычным образом. К сожалению, при этом теряется часть текста, т.к. символы, находящиеся в выходной очереди к терминалу, при появлении сигнала завершения пропадают. Если стандартный вывод назначен не на терминал, то команда pg действует точно так же, как cat(1), за исключением того, что заголовок выводится перед каждым файлом (если их несколько).

ПРИМЕР
Примером использования команды pg может служить чтение новостей:


	news | pg  -p  "(Page  %d):"

ФАЙЛЫ


	/usr/lib/terminfo/*     База  данных  с  информацией  о

	 	  	        терминалах.

	/tmp/pg*                Временный файл при вводе из ка-

			        нала.

СМ. ТАКЖЕ
ed(1), grep(1).
terminfo(4) в Справочнике программиста.

СЮРПРИЗЫ
Если позиции табуляции установлены не через восемь, возможны нежелательные эффекты.

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

При ожидании ввода с терминала команда pg воспринимает символы завершения и прерывания как сигнал к завершению. Однако, в момент активной работы эти сигналы интерпретируются как приказ перейти в режим приглашения. Ими следует пользоваться с осторожностью, если ввод осуществляется из канала, так как прерывание, скорее всего, приведет к завершению остальных команд конвейера.