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

66 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# `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]]