# `fmt` – Textabsätze umbrechen `fmt` formatiert einfachen Text neu, indem es Zeilen innerhalb eines Absatzes zusammenführt und passend zur gewünschten Breite wieder umbrechen lässt. Es gehört bei GNU/Linux üblicherweise zu **GNU coreutils**. `fmt` ist für Fließtext gedacht, nicht für Programmcode oder Dokumente mit komplexer Formatierung. ## Grundlegende Verwendung ```bash fmt notizen.txt # Ausgabe auf stdout, Standardbreite: 75 Zeichen fmt -w 80 notizen.txt # auf höchstens 80 Zeichen umbrechen fmt -w 72 # Text aus stdin formatieren ``` Datei bearbeiten und das Ergebnis in eine neue Datei schreiben: ```bash fmt -w 80 notizen.txt > notizen-neu.txt ``` > Nicht direkt mit `fmt notizen.txt > notizen.txt` überschreiben: Die Shell leert die Zieldatei bereits, bevor `fmt` sie einliest. ## Nützliche Optionen | Option | Bedeutung | |---|---| | `-w 80` | Maximale Zeilenbreite festlegen (Standard: 75) | | `-s` | Nur zu lange Zeilen umbrechen, kurze Zeilen nicht mit Nachbarzeilen zusammenführen | | `-u` | Einheitliche Abstände zwischen Wörtern und Sätzen erzeugen | | `-c` | Einrückung der ersten beiden Zeilen eines Absatzes als „crown margin“ behandeln | Beispiel für eine Mail oder einen Text, dessen vorhandene Zeilenumbrüche weitgehend erhalten bleiben sollen: ```bash fmt -s -w 72 mail.txt ``` ## Wie `fmt` Absätze erkennt - Ein Absatz besteht grundsätzlich aus zusammenhängenden Textzeilen. - Leerzeilen trennen Absätze und bleiben erhalten. - `fmt` verbindet kurze Zeilen innerhalb eines Absatzes und verteilt den Text neu. - Lange Wörter werden normalerweise nicht automatisch getrennt. ## Typische Anwendungsfälle - Lange oder uneinheitlich umbrochene Textdateien lesbar machen. - Text aus einer Pipe auf eine feste Breite bringen: ```bash cat entwurf.txt | fmt -w 72 ``` - Einen Absatz für ein Terminal, eine E-Mail oder einen Plain-Text-Editor umbrechen. ## Grenzen und Stolperfallen - `fmt` versteht keine Markdown-Struktur: Listen, Tabellen, Überschriften und Codeblöcke können beim Umbruch beschädigt werden. - Für Quellcode ist es ungeeignet; dafür den passenden Formatter der jeweiligen Sprache verwenden. - Die Eingabedatei wird nicht verändert. `fmt` schreibt das Ergebnis standardmäßig auf die Standardausgabe. ## Siehe auch - [[IT-Know-How/Linux/BASH Basics/find|find]] – Dateien suchen - [[IT-Know-How/Linux/Linux|Linux]]