fmt
Что делает команда fmt в Linux
Команда fmt в Linux используется для автоматического форматирования текста — выравнивания строк по ширине, объединения строк и управления переносами слов. Это удобный инструмент при работе с текстовыми файлами, скриптами, документацией или результатами команд, когда требуется аккуратное оформление вывода.
По умолчанию команда fmt в Linux форматирует текст так, чтобы каждая строка не превышала 75 символов. Однако это поведение можно изменять с помощью различных параметров.
Пример базового использования:
fmt file.txt
Эта команда отформатирует содержимое файла file.txt и выведет результат в стандартный поток (терминал).
Чтобы перезаписать исходный файл, можно выполнить:
fmt file.txt > file_new.txt
Так вы получите отформатированный текст в новом файле.
Основные параметры команды fmt в Linux
Ниже приведены ключевые параметры команды fmt в Linux, которые позволяют гибко управлять форматированием текста.
1. Параметр -w (ширина строки)
Флаг -w определяет максимальную длину строки в символах.
Пример:
fmt -w 60 file.txt
Здесь текст будет разбит так, чтобы каждая строка имела не более 60 символов. Это полезно при форматировании README-файлов или документации, чтобы сохранить читабельность.
fmt -w 72.2. Параметр -s (разделение по абзацам)
Флаг -s запрещает объединение строк, если между ними есть пустая строка. Таким образом, команда fmt в Linux будет воспринимать каждый абзац отдельно.
Пример:
fmt -s article.txt
Результат — форматированный текст, где сохраняется логическая структура документа.
3. Параметр -u (объединение пробелов)
Флаг -u приводит пробелы к единому виду:
- удаляет лишние пробелы между словами,
- оставляет ровно один пробел между предложениями,
- заменяет табуляции пробелами.
Пример:
fmt -u text.txt
После выполнения команды текст станет более аккуратным, а структура предложений — единообразной.
4. Параметр -t (режим форматирования таблиц)
Параметр -t используется при форматировании текста, который содержит отступы, например при работе с кодом или таблицами.
Пример:
fmt -t code_sample.txt
Этот режим предотвращает искажение отступов, сохраняя оригинальную структуру блоков.
5. Параметр -p (сохранение префиксов)
Если в тексте используются одинаковые префиксы (например, >, #, //), то с помощью флага -p их можно сохранить при форматировании.
Пример:
fmt -p "> " quotes.txt
Команда оставит символ > в начале каждой строки. Это особенно полезно при работе с цитатами в Markdown или при оформлении комментариев в коде.
Примеры использования команды fmt в Linux
Пример 1. Форматирование вывода другой команды
Команда fmt в Linux может использоваться не только для файлов, но и для вывода других команд.
Пример:
cat longtext.txt | fmt -w 50
В этом случае fmt применяет форматирование к потоку данных, полученному от cat. Это удобно при работе с длинными строками в терминале.
Пример 2. Форматирование нескольких файлов
fmt -w 65 file1.txt file2.txt > merged.txt
Оба файла объединяются и форматируются в один текстовый блок с шириной строки 65 символов.
Пример 3. Использование fmt вместе с другими инструментами
Команда fmt в Linux хорошо комбинируется с grep, awk, sed и другими утилитами.
Пример:
grep "error" logs.txt | fmt -w 80
Команда выводит все строки с ошибками из журнала и форматирует их для удобного чтения.
Как работает команда fmt в Linux изнутри
Команда fmt в Linux не просто делит строки — она анализирует пробелы, переносы слов и структуру текста.
Алгоритм работы:
- Считывает входной поток или файл.
- Определяет границы абзацев (по пустым строкам).
- Перестраивает строки в соответствии с заданной шириной.
- Сохраняет префиксы и пробелы, если указаны параметры
-pили-t.
Благодаря этому fmt подходит для форматирования не только простого текста, но и технических документов, скриптов и заметок.
Полезные комбинации с fmt
- Форматирование вывода из команды
man:man ls | col -b | fmt -w 70Здесьcol -bочищает управляющие символы, аfmtвыравнивает результат по ширине. - Форматирование Markdown-файлов:
fmt -w 72 -p "> " notes.mdЭто помогает сохранить цитаты (>) и при этом сделать текст читабельным. - Обработка длинных логов:
tail -n 1000 /var/log/syslog | fmt -w 90Полезно для быстрого анализа логов с длинными строками.
Заключительные советы
- Совет 1: Перед форматированием файла с помощью
fmt, сделай копию — команда может изменить структуру текста. - Совет 2: Используй
fmt -s -u -w 70для оптимального результата при подготовке текстов к публикации в терминале или README.
Команда fmt в Linux — это простой, но мощный инструмент для текстового форматирования прямо из консоли. Она помогает поддерживать порядок в документах, исходниках и логах, повышая удобство чтения и восприятия информации.