Files
it-know-how/Linux/fmt.md
T
2026-10-31 19:09:32 +01:00

2.4 KiB
Raw Blame History

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

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:

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:

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:

    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