PG(1) 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 воспринимает
символы завершения и прерывания как сигнал к заверше-
нию. Однако, в момент активной работы эти сигналы ин-
терпретируются как приказ перейти в режим приглашения.
Ими следует пользоваться с осторожностью, если ввод
осуществляется из канала, так как прерывание, скорее
всего, приведет к завершению остальных команд конвей-
ера.
|