Linux / Befehl fold: Lange Zeilen auf eine feste Breite umbrechen

fold bricht lange Eingabezeilen in mehrere Zeilen mit einer angegebenen Breite um. Im Gegensatz zu fmt, das Absätze natürlich umbricht, konzentriert es sich darauf, die Anzeige der Zeilenbreite zu begrenzen.

Die Standardbreite beträgt 80 Spalten. Bei Verwendung von -s werden Zeilen nach Möglichkeit an Wortgrenzen gebrochen. Ursprüngliche Zeilenumbrüche bleiben erhalten, und nur das Ergebnis wird an die Standardausgabe gesendet.

Grundlegende Syntax

fold [options] [file...]

Installierte Implementierungen und Optionen können je nach Distribution variieren. Überprüfen Sie die Beschreibung auf Ihrem aktuellen System mit man fold.

Beispiele

Zeilen mit der Standardbreite umbrechen

Lange Zeilen werden bei einer Breite von 80 Spalten umgebrochen.

fold long-lines.txt

Die Breite auf 60 Spalten festlegen

Die Ausgabe wird auf die gewünschte Terminal- oder Dokumentbreite begrenzt.

fold -w 60 long-lines.txt

Möglichst an Wortgrenzen umbrechen

Nach Möglichkeit erfolgt der Umbruch an Leerzeichen, damit Wörter nicht mitten im Wort getrennt werden.

fold -s -w 60 paragraph.txt

Anzeige der nach fester Breite geteilten Ausgabe

fold -w 4 bricht Zeilen bei der angegebenen Breite um. Die folgende Zeichenkette enthält keine Leerzeichen; daher entsteht nach jeweils vier Zeichen eine neue Zeile.

printf 'abcdefghij\n' | fold -w 4

Beispielausgabe:

abcd
efgh
ij

Mit -s vermeiden Sie nach Möglichkeit Umbrüche innerhalb von Wörtern. fold unterscheidet sich von fmt, das ganze Textabsätze neu formatiert. Bei Tabulatoren, Mehrbyte-Zeichen und breiten Zeichen müssen Sie zwischen Anzeigespalten und Bytes unterscheiden.

Hauptoptionen und Format

Optionen/Format Beschreibung
-w N Legt die maximale Breite der Ausgabezeilen fest.
-s Wenn möglich, Zeilen an Leerzeichen umbrechen.
-b Zählt die Breite basierend auf Bytes statt auf Bildschirmspalten.

Vorsichtsmaßnahmen bei der Verwendung

-b kann mitten in UTF-8-Zeichen brechen, verwenden Sie es daher nicht leichtfertig bei mehrsprachigem Text. Die tatsächliche Zeichenbreite und die Anzeige von Emojis in einem Terminal können je nach Umgebung variieren. Wenn die ursprünglichen Zeilen der Daten eine Bedeutung haben, ist es sicherer, das gefaltete Ergebnis nicht als neue Eingabedaten zu verwenden.

Häufig gestellte Fragen

Wie unterscheiden sich fold und fmt?

fold begrenzt die Breite einzelner Zeilen. fmt formatiert dagegen gewöhnliche Textabsätze neu und verteilt die Zeilenumbrüche innerhalb des Absatzes.

Offizielle Dokumentation

Das genaue Verhalten der Optionen und Unterschiede zwischen Implementierungen beschreibt die offizielle Dokumentation zu fold.