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

Шоттс Уильям

Шрифт:

если аргументы отсутствуют), и выводит результат

в стандартный вывод.

По умолчанию пустые строки, пробелы между

словами и отступы сохраняются в выводе;

последующие строки с разными отступами не

объединяются; символы табуляции на входе

заменяются соответствующим числом пробелов и

выводятся в таком виде.

`fmt' старается разбивать строки по концам

предложений и стремится не разрывать строки

после первого слова или перед последним

словом в предложении. "Конец предложения"

определяется либо по концу абзаца, либо по

слову, завершающемуся любым из символов `.?!',

за которым следуют два пробела или символ

перевода строки, любые скобки или кавычки при

этом игнорируются. Подобно TeX, `fmt' читает

"абзацы" целиком, прежде чем выполнить перенос

строк; программа использует вариант алгоритма,

предложенного Дональдом Э. Кнутом (Donald

E. Knuth) и Михаэлем Ф. Плассом (Michael

F. Plass) в статье "Breaking Paragraphs Into

Lines", `Software--Practice & Experience' 11,

11 (November 1981), 1119-1184.

Намного лучше. Добавив параметр -c, мы получили желаемый результат.

Программа fmt содержит несколько интересных параметров, которые перечислены в табл. 21.3.

Таблица 21.3. Параметры fmt

Параметр

Значение

– c

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

– p строка

Форматировать только строки, начинающиеся со строки, указанной в аргументе. После форматирования содержимое аргумента добавляется в начало каждой переформатированной строки. Этот параметр можно использовать для форматирования текста комментариев в исходном коде. Например, любой сценарий или конфигурационный файл, где комментарии начинаются с символа #, можно обработать командой fmt с параметром -p '# ', чтобы отформатировать только комментарии. Пример приводится ниже

– s

Режим простой разбивки. В этом режиме выполняется только разбивка строк по указанной ширине. Короткие строки не объединяются. Этот режим можно использовать для форматирования исходного кода, когда объединение коротких строк нежелательно

– u

Нормировать пробелы. Этот параметр применяется для форматирования в стандартном «машинописном стиле», то есть когда слова отделяются одним пробелом, а предложения — двумя. Этот режим удобно использовать для удаления выравнивающих пробелов, то есть пробелов, добавленных с целью выравнивания текста по обоим краям

– w ширина

Форматировать текст по указанной ширине. По умолчанию используется ширина 75 символов. Обратите внимание: в действительности fmt форматирует строки немного короче, чем указано в аргументе, чтобы обеспечить сбалансированность ширины текста

Особый интерес представляет параметр -p. С его помощью можно форматировать выбранные фрагменты файла, гарантировав, что все отформатированные строки будут начинаться с одной и той же последовательности символов. Многие языки программирования поддерживают комментарии, начинающиеся с символа решетки (#), и такие комментарии можно форматировать с помощью этого параметра. Давайте создадим файл, имитирующий исходный текст программы с комментариями:

[me@linuxbox ~]$ cat > fmt-code.txt

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

# Эта строка - комментарий.

# За ней следует другая строка с комментарием.

# И еще одна.

Это не комментарий, а строка с кодом.

Еще одна строка с кодом.

И еще.

Файл примера содержит комментарии, начинающиеся со строки # (символ # и пробел), и строки «кода». Теперь воспользуемся командой fmt, чтобы отформатировать комментарии и при этом не затронуть код:

[me@linuxbox ~]$ fmt -w 50 -p '# ' fmt-code.txt

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

# Эта строка - комментарий. За ней следует другая

# строка с комментарием. И еще одна.

Это не комментарий, а строка с кодом.

Еще одна строка с кодом.

И еще.

Обратите внимание, что смежные строки комментариев были объединены, а пустые строки и строки, не начинающиеся с указанного префикса, остались нетронутыми.

pr — форматирование текста для печати

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

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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