Друк файлів: cat і pr

Отже, ми створили кілька файлів Як переглянути їх вміст Є багато програм, здатних виконати це завдання, може

бути, навіть більше, ніж потрібно Одна з можливостей полягає в тому, щоб запустити редактор:

$ ed junk

19                                     ed повідомляє про те, що в junk 19 символів 1, $ p Надрукувати рядки з першої по останню To be or  not  to  be       У файлі всього один рядок

q Все зроблено

$

Спочатку ed виводить кількість символів у junk команда 1, $ p повідомляє редактору, що треба надрукувати всі рядки цього файлу Вивчивши ed, ви зможете друкувати тільки необхідні фрагменти, а не цілий файл

Бувають випадки, коли редактор не підходить для друку Наприклад, існує граничний розмір файлу (кілька тисяч рядків), який ed може обробити Більше того, він друкує тільки один файл за раз, а можливі ситуації, коли потрібен друк декількох файлів – одного за іншим, без зупинок Отже, є кілька інших варіантів

Перший варіант – це cat, найпростіша з усіх друкуючих програм вона друкує вміст всіх файлів, імена яких зазначені в її аргументах:

$ cat  junk

To be or  not  to  be

$ cat  temp

That  is the  question

$ cat  junk  temp

To  be  or  not  to  be That  is  the  question

$

Названі в аргументах файли або файл виводяться на термінал разом (звідси імя cat – catenate1 – зєднувати), один за іншим, без будь-яких роздільників

З невеликими файлами проблем не виникає, а от якщо файл великий і зєднання з компютером високошвидкісне, то треба мати дуже гарну реакцію, щоб встигнути натиснути ctl-S і зупинити висновок cat, поки він ще не вислизнув з екрану Немає «стандартної» команди, що дозволяє виводити файл на відеотермінал порціями, поміщають на одному екрані, але в багатьох UNIX-системах така можливість є У вашій системі така команда може називатися pg або more Наша називається p про неї буде розказано в главі 6

Як і cat, команда pr друкує вміст всіх файлів, перелічених у списку, але у формі, придатній для построчнопечатающіх пристроїв: кожна сторінка містить 66 рядків (11 дюймів у висоту), до

1 Catenate – це рідко вживається синонім слова concatenate (повязувати, зєднувати)

яких додані дата й час редагування файлу, імя файлу і номер сторінки, а також декілька порожніх рядків на місці згину паперу Отже, щоб акуратно роздрукувати junk, потім перейти на початок нової сторінки і так само роздрукувати temp, треба виконати команду:

$ pr  junk  temp

Sep 26 16:25  1983   junk  Page 1

To be or  not  to  be

(60 more blank lines)

Sep 26 16:26  1983   temp Page 1

That  is the  question

(60 more blank lines)

$

Програма pr також може здійснювати вивід в кілька колонок:

$ pr -3 імена5файлов

Кожен файл буде роздрукований в 3 колонки Замість «3» можна написати будь-який розумний число, і pr постарається зробити все найкращим чином (На місці слівімена5файловповинен бути введений список файлів для друку) Команда pr-m виведе кожен файл в окремому стовпці Див опис pr (1)

Відзначимо, що prне є програмою форматування тексту в тому, що стосується перегрупування рядків або вирівнювання країв Справжні засоби форматування – це nroff і troff, які будуть описані в главі 9

Існують також команди, які друкують файли на високошвидкісному принтері Почитайте в man про команди lp і lpr або знайдіть статтю «printer» в пермутаціонном указателе1 Вибір програми залежить від обладнання, підключеного до компютера Команди pr і lpr часто використовуються разом – після того як pr отформатирует інформацію належним чином, lpr запускає механізм виведення на построчно друкує принтер Повернемося до цього трохи пізніше

Джерело: Керниган Б, Пайк Р, UNIX Програмне оточення – Пер з англ – СПб: Символ-Плюс, 2003 – 416 с, Мул

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*