fmt

Что делает команда fmt в Linux

Команда fmt в Linux используется для автоматического форматирования текста — выравнивания строк по ширине, объединения строк и управления переносами слов. Это удобный инструмент при работе с текстовыми файлами, скриптами, документацией или результатами команд, когда требуется аккуратное оформление вывода.

По умолчанию команда fmt в Linux форматирует текст так, чтобы каждая строка не превышала 75 символов. Однако это поведение можно изменять с помощью различных параметров.

Пример базового использования:

Bash
fmt file.txt

Эта команда отформатирует содержимое файла file.txt и выведет результат в стандартный поток (терминал).

Чтобы перезаписать исходный файл, можно выполнить:

Bash
fmt file.txt > file_new.txt

Так вы получите отформатированный текст в новом файле.

Основные параметры команды fmt в Linux

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

1. Параметр -w (ширина строки)

Флаг -w определяет максимальную длину строки в символах.
Пример:

Bash
fmt -w 60 file.txt

Здесь текст будет разбит так, чтобы каждая строка имела не более 60 символов. Это полезно при форматировании README-файлов или документации, чтобы сохранить читабельность.

Если вы работаете с кодом или текстами, где важно ограничение по символам (например, при написании commit-сообщений), используйте fmt -w 72.

2. Параметр -s (разделение по абзацам)

Флаг -s запрещает объединение строк, если между ними есть пустая строка. Таким образом, команда fmt в Linux будет воспринимать каждый абзац отдельно.
Пример:

Bash
fmt -s article.txt

Результат — форматированный текст, где сохраняется логическая структура документа.

3. Параметр -u (объединение пробелов)

Флаг -u приводит пробелы к единому виду:

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

Пример:

Bash
fmt -u text.txt

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

4. Параметр -t (режим форматирования таблиц)

Параметр -t используется при форматировании текста, который содержит отступы, например при работе с кодом или таблицами.
Пример:

Bash
fmt -t code_sample.txt

Этот режим предотвращает искажение отступов, сохраняя оригинальную структуру блоков.

5. Параметр -p (сохранение префиксов)

Если в тексте используются одинаковые префиксы (например, >, #, //), то с помощью флага -p их можно сохранить при форматировании.
Пример:

Bash
fmt -p "> " quotes.txt

Команда оставит символ > в начале каждой строки. Это особенно полезно при работе с цитатами в Markdown или при оформлении комментариев в коде.

Примеры использования команды fmt в Linux

Пример 1. Форматирование вывода другой команды

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

Bash
cat longtext.txt | fmt -w 50

В этом случае fmt применяет форматирование к потоку данных, полученному от cat. Это удобно при работе с длинными строками в терминале.

Пример 2. Форматирование нескольких файлов

Bash
fmt -w 65 file1.txt file2.txt > merged.txt

Оба файла объединяются и форматируются в один текстовый блок с шириной строки 65 символов.

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

Пример 3. Использование fmt вместе с другими инструментами

Команда fmt в Linux хорошо комбинируется с grep, awk, sed и другими утилитами.
Пример:

Bash
grep "error" logs.txt | fmt -w 80

Команда выводит все строки с ошибками из журнала и форматирует их для удобного чтения.

Как работает команда fmt в Linux изнутри

Команда fmt в Linux не просто делит строки — она анализирует пробелы, переносы слов и структуру текста.
Алгоритм работы:

  1. Считывает входной поток или файл.
  2. Определяет границы абзацев (по пустым строкам).
  3. Перестраивает строки в соответствии с заданной шириной.
  4. Сохраняет префиксы и пробелы, если указаны параметры -p или -t.

Благодаря этому fmt подходит для форматирования не только простого текста, но и технических документов, скриптов и заметок.

Полезные комбинации с fmt

  1. Форматирование вывода из команды man: man ls | col -b | fmt -w 70 Здесь col -b очищает управляющие символы, а fmt выравнивает результат по ширине.
  2. Форматирование Markdown-файлов: fmt -w 72 -p "> " notes.md Это помогает сохранить цитаты (>) и при этом сделать текст читабельным.
  3. Обработка длинных логов: tail -n 1000 /var/log/syslog | fmt -w 90 Полезно для быстрого анализа логов с длинными строками.

Заключительные советы

  • Совет 1: Перед форматированием файла с помощью fmt, сделай копию — команда может изменить структуру текста.
  • Совет 2: Используй fmt -s -u -w 70 для оптимального результата при подготовке текстов к публикации в терминале или README.

Команда fmt в Linux — это простой, но мощный инструмент для текстового форматирования прямо из консоли. Она помогает поддерживать порядок в документах, исходниках и логах, повышая удобство чтения и восприятия информации.