Вперед Назад Содержание

4. Формирование содержимого файла

Эти команды перераспределяют содержимое файла.

4.1 `fmt': переформирование текста

Утилита `fmt' преобразует и сливает строки для получения выходных строк (не более) данной длины (75 символов по умолчанию).

Общая запись:

fmt [OPTION]... [FILE]...
`fmt' последовательно считывает файлы, указанные в качестве аргументов FILE, и выводит их после обработки в стандартный вывод. Если имя файла не указано, или в качестве одного из аргументов задан минус '-', `od' считывает данные из стандартного ввода.

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

`fmt' предпочитает разрывать строку в конце предложения и пытается избежать разрыва после первого слова или перед последним словом предложения. Конец предложкния определяется либо как слово оканчивающееся на ".?!" с последующими двумя пробелами, либо как конец абзаца, либо как конец строки, игнорируя любые скобки и кавычки. Так же, как и TeX, `fmt' читает целый абзац перед тем как разбивать строки, а принцип разбиения такой же, как в книге "Разбиение абзаца на строки" (Дональд Кнут и Майкл Пласс, 'Breaking Paragraphs Into Lines', `Software--Practice and Experience', 11 (1981), 1119-1184).

Утилита воспринимает следующие опции (см. так же главу 2 'Общие Опции'):

`-c' или `--crown-margin'

Режим "Обработка края": сохраняется отступ первых двух строк абзаца, и выравниваются левые края всех остальных строк по левому краю второй строки.

`-t' или `--tagged-paragraph'

Режим "Распознавание абзаца": аналогично режиму обработки края, но если отступы первой и второй строк совпадают, то первая строка воспринимается как однострочный абзац.

`-s' или `--split-only'

Только разбивает строки. Преобразует строки, которые были неправильно сформированны.

`-u' или `--uniform-spasing'

Преобразует пробелы между словами в один пробел, а пробелы между предложениями в два пробела.

`-WIDTH' или `-w WIDTH' или `--width=WIDTH'

Пытается нарастить выходную сроку до WIDTH символов (по умолчанию 75). Но сначала `fmt' составляет строку примерно на 7% короче, чтобы оставить место для баланса.

`-p PREFIX' или `--prefix=PREFIX'

Формируются только строки начинающиеся с PREFIX (возможно с пробела или с табуляции). Но строка обрабатывается без учета PREFIX. Это можно использовать для преобразования определенных видов программных комментариев, оставляя текст программы неизменным.

4.2 `pr': нумерация страниц и распределение файла в колонки для вывода на принтер

Утилита `pr' последовательно считывает файлы, указанные в качестве аргументов FILE, и выводит их виде (не обязательно) нескольких колонок в стандартный вывод, с пронумерованными страницами. Если имя файла не указано, или в качестве одного из аргументов задан минус '-', `pr' считывает данные из стандартного ввода.

Общая запись:

pr [OPTION]... [FILE]...
По умолчанию, 5-ти строчный заголовок выводится так: две пустые строки; строка с датой, именем файла и номером страницы; и еще две пустых строки. Пять строк хвоста выводятся так же.

Утилита воспринимает следующие опции (см. так же главу 2 'Общие Опции'):

`+PAGE'

Начнает вывод со страницы PAGE.

`-COLUMN'

Выводит COLUMN колонок. Если Вы не используете опцию `-w' для увеличения ширины страницы, ширина колонок автоматически уменьшается при увеличении числа колонок.

`-a'

Выводит колонки поперек вместо того чтобы выводить их вдоль.

`-b'

Выравнивает колонки на последней странице.

`-c'

Выводит контрольные символы используя `^', а другие неграфические символы в восьмеричном предсавлении с предстоящей '\'. По умолчанию, неграфические символы не изменяются.

`-d'

Выводит двойные пробелы.`-e[IN-TABCHAR[IN-TABWIDTH]]' На входе преобразует табуляцию в пробелы. Необязательный аргумент IN-TABCHAR воспринимается как входной символ табуляции (по умолчанию ТАВ). Второй необязательный аргумент IN-TABWIDTH обозначает количество пробелов в этой табуляции (по умолчанию 8).

`-f' или `-F'

Использует символ перевода формата вместо символа перевода строки.

`-h HEADER'

Заменяет имя файла в заголовке на HEADER.`-i[OUT-TABCHAR[OUT-TABWIDTH]]' Заменяет пробелы на табуляцию на выходе. Необязательный аргумент OUT-TABCHAR воспринимается как выводимый символ табуляции (по умолчанию ТАВ). Второй необязательный аргумент OUT-TABCHAR обозначает количество пробелов в этой табуляции (по умолчанию 8).

`-l N'

Определяет длину страницы в N строк (по умолчанию 66). Если N меньше 10, заголовок и хвост опускаются, как при опции `-t'.

`-m'

Выводит файлы параллельно в различные колонки.

`-n[NUMBER-SEPARATOR[DIGITS]]'

Ставит номер строки перед каждой колонкой, а при параллельном выводе (`-m'), перед каждой строкой. Необязательный аргумент NUMBER-SEPARATOR отделяет номер от текста (по умолчанию TAB). А необязательный аргумент DIGITS задает число цифр используемых для номера (по умолчанию 5).

`-o N'

Устанавливает общий (для каждой строки) отступ слева на N пробелов (по умолчанию 0).Тогда общая ширина страницы будет N плюс ширина устанавливаемая опцией `-w'.

`-r'

Не выводит предупреждающее сообщение если один из аргументов FILE не открыт. Но, выходной статус будет ненулевым.

`-s[C]'

Разделяет колонки символом C. Если C опущено, то пробелом; если опущена опция вообще, то TAB.

`-t'

Подавляется вывод заголовока и хвоста. Опция `-f' при этом теряет свое значение.

`-v'

Выводит неграфические символы в восьмеричном представлении с предстоящей обратной косой черой.

`-w N'

Устанавливает ширину страницы в N (по умолчанию 72) символов.

4.3 `fold': разбивка длинных строк

Утилита `fold' последовательно считывает файлы, указанные в качестве аргументов FILE, и выводит их в стандартный вывод, разбивая длинные строки. Если имя файла не указано, или в качестве одного из аргументов задан минус '-', `fold' считывает данные из стандартного ввода.

Общая запись:

fold [OPTION]... [FILE]...
По умолчанию, `fold' разбивает строки содержащие более 80 символов, при чем на столько строк на сколько необходимо.

`fold' подсчитывает число символов строки (TAB воспринимается как несколько пробелов), но символ "забой" уменьшает счетчик.

Утилита воспринимает следующие опции (см. так же главу '2 Общие Опции'):

`-b' или `--bytes'

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

`-s' или `--spaces'

Разбиение производится на границе слова, т.е. строка разбивается на последнем пробеле перед максимальным числом смволов. Если строка не содержит таких пробелов, то она разбивается как обычно.

`-w WIDTH' или `--width=WIDTH'

Устанавливает максимальную длину равной WIDTH, вместо 80.


Вперед Назад Содержание