66 lines
2.4 KiB
Markdown
66 lines
2.4 KiB
Markdown
# `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]]
|