Вход/Регистрация
Командная строка Linux
вернуться

Шоттс Уильям

Шрифт:

Программа pr используется для разбивки текста на страницы. Перед печатью текст зачастую желательно разбить на страницы с несколькими пустыми строками в начале и в конце, чтобы получить пустые поля вверху и внизу каждой страницы. В дальнейшем эти поля можно использовать для вставки верхнего и нижнего колонтитулов.

Продемонстрируем работу pr, форматируя наш файл distros.txt в последовательность очень коротких страниц (ниже показаны только первые две страницы):

[me@linuxbox ~]$ pr -l 15 -w 65 distros.txt

2012-12-11 18:27 distros.txt Page 1

SUSE 10.2 12/07/2006

Fedora 10 11/25/2008

SUSE 11.0 06/19/2008

Ubuntu 8.04 04/24/2008

Fedora 8 11/08/2007

2012-12-11 18:27 distros.txt Page 2

SUSE 10.3 10/04/2007

Ubuntu 6.10 10/26/2006

Fedora 7 05/31/2007

Ubuntu 7.10 10/18/2007

Ubuntu 7.04 04/19/2007

В этом примере использовались параметры -l (длина (length) страницы) и -w (ширина (width) страницы), определяющие размеры «страницы» — 65 символов в ширину и 15 строк в длину. pr разбила содержимое файла distros.txt на отдельные страницы, добавив несколько пустых строк сверху и снизу, и создала заголовок по умолчанию, содержащий время последнего изменения файла, имя файла и номер страницы. Программа pr поддерживает множество параметров для управления форматированием страницы, но подробнее о них мы поговорим в главе 22.

printf — форматирование и вывод данных

В отличие от других команд в этой главе, команда printf не используется в конвейерной обработке (она не принимает данные со стандартного ввода) и редко применяется непосредственно в командной строке (чаще она используется в сценариях). Почему это так важно? Потому что она используется очень широко.

Команда printf (ее название происходит от print formatted (форматированный вывод)) первоначально была создана как функция для языка программирования C и впоследствии была реализована во многих других языках, включая язык командной оболочки. Фактически в bash команда printf реализована как встроенная команда. Она имеет следующий синтаксис:

printf "формат" аргументы

Команда принимает строку с описанием формата, которая затем применяется к списку аргументов. Отформатированный результат передается в стандартный вывод. Ниже приводится простой пример:

[me@linuxbox ~]$ printf "I formatted the string: %s\n" foo

I formatted the string: foo

Строка формата может содержать литеральный текст (такой, как I formatted the string:), экранированные последовательности (такие, как \n, символ перевода строки) и последовательности, начинающиеся с символа %, которые называют спецификаторами преобразований (conversion specifications). В примере выше спецификатор преобразования %s используется для форматирования строки foo и включения ее в вывод команды. Еще один пример:

[me@linuxbox ~]$ printf "I formatted '%s' as a string.\n" foo

I formatted 'foo' as a string.

Как видите, в выводе команды спецификатор преобразования %s замещается строкой foo. Преобразование s используется для форматирования строковых данных. Существуют также другие спецификаторы для других видов данных. В табл. 21.4 перечислены наиболее часто используемые типы данных.

Таблица 21.4. Спецификаторы типов данных, наиболее часто используемых в команде printf

Спецификатор

Описание

d

Форматирует число как десятичное целое со знаком

f

Форматирует и выводит вещественное число

o

Форматирует целочисленное значение как восьмеричное число

s

Форматирует строку

x

Форматирует целочисленное значение как шестнадцатеричное число, с использованием букв a—f нижнего регистра, где это необходимо

X

То же, что и x, но использует буквы верхнего регистра

%

Выводит литеральный символ % (то есть сам спецификатор имеет вид: %%)

Продемонстрируем действие каждого спецификатора преобразования на примере строки 380:

[me@linuxbox ~]$ printf "%d, %f, %o, %s, %x, %X\n" 380 380 380 380 380 380

380, 380.000000, 574, 380, 17c, 17C

Так как в строке формата указано шесть спецификаторов формата, нам потребовалось передать команде printf шесть аргументов. Шесть результатов показывают результат действия каждого спецификатора.

  • Читать дальше
  • 1
  • ...
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: