UNIX — универсальная среда программирования | страница 19
>cat и >prТеперь, когда у нас есть файлы, как посмотреть их содержимое? Существует множество программ, решающих эту задачу (возможно, даже слишком много). Один из вариантов — использование редактора:
>$ ed junk
>19 ed сообщает, что в файле 17 символов
>1,$ p Печать от первой до последней строки
>То be or not to be В файле только одна строка
>q Все сделано
Редактор начинает работу с сообщения числа символов в файле >junk: команда >'1,$ p' инициирует вывод всех строк файла. После того как вы научитесь пользоваться редактором, вы сможете выбирать части файла, предназначенные для печати. Но бывают ситуации, когда невозможно использовать редактор для печати. Например, размер файла, с которым может работать редактор, имеет определенный предел (несколько тысяч строк). Далее, он может вывести на печать только один файл в данный момент, а нужно печатать несколько, один за другим без перерыва. В таких ситуациях существует несколько способов просмотра файлов.
Прежде всего есть программа >cat (самая простая из программ печати), которая выдает содержимое всех файлов, указанных как аргументы:
>$ cat junk
>To be or not to be
>$ cat temp
>That is a question.
>$ cat junk temp
>To be or not to be
>That is a question.
>$
Поименованный файл или файлы "катенируются" (отсюда и имя >cat), т.е. выводятся на терминал последовательно один за другим без промежутков.
С короткими файлами никаких проблем нет, но в случае длинных файлов, если ваш терминал соединен с машиной высокоскоростной линией, вы должны быть достаточно проворны, чтобы с помощью ctl-s остановить вывод прежде, чем он исчезнет с экрана. Стандартной команды для выдачи файла на видеотерминал порциями размеров в экран не существует, хотя в каждой системе UNIX такая команда имеется. В вашей системе это может быть команда >pg или >more. Здесь она называется >pr в гл. VI будет показана ее реализация.
Подобно команде >cat, >pr выдает содержимое всех файлов, перечисленных в списке, но в виде, подходящем для устройства печати: каждая страница длиной в 11 дюймов содержит 66 строк, включая заголовок, где указываются номер страницы, имя файла, дата и время его последнего изменения. В месте сгиба бумаги строки пропускаются. Итак, для того чтобы красиво напечатать файл >junk, затем перейти на следующую страницу и так же красиво напечатать файл >temp, задайте:
>$ pr junk temp
>Sep 26 16:25 1983 junk Page 1
>To be or not to be