Fold: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Dirk (Diskussion | Beiträge) K ich würde das eigentlich eher zu den Grundlagen zählen |
||
(12 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{SEITENTITEL:fold}} | |||
Wenn man in einem Terminalfenster eine Datei, die Text beinhaltet, mittels ''cat'' ausgibt, wird dieser Text am Rand des Terminalfensters umgebrochen. Je breiter das Fenster ist, desto länger sind dadurch die Zeilen. Mittels des Programms ''fold'' ist es möglich, den Zeilenumbruch zu beeinflussen. | Wenn man in einem Terminalfenster eine Datei, die Text beinhaltet, mittels ''cat'' ausgibt, wird dieser Text am Rand des Terminalfensters umgebrochen. Je breiter das Fenster ist, desto länger sind dadurch die Zeilen. Mittels des Programms ''fold'' ist es möglich, den Zeilenumbruch zu beeinflussen. | ||
Zeile 6: | Zeile 7: | ||
Das Programm kann – wie die meisten Linux-Programme – entweder direkt aufgerufen werden und akzeptiert neben der Parameter eine Datei oder „stdin“ (repräsentiert durch ein Minus) als Quelle. Natürlich können auch hier Ein- und Ausgabe-Umleitungen verwendet werden. | Das Programm kann – wie die meisten Linux-Programme – entweder direkt aufgerufen werden und akzeptiert neben der Parameter eine Datei oder „stdin“ (repräsentiert durch ein Minus) als Quelle. Natürlich können auch hier Ein- und Ausgabe-Umleitungen verwendet werden. | ||
Der einfachste Aufruf ist jedoch, einfach einen Dateinamen zu übergeben. Der Inhalt der Datei wird dann ausgegeben, und dabei nach 80 „Spalten“ | Der einfachste Aufruf ist jedoch, einfach einen Dateinamen zu übergeben. Der Inhalt der Datei wird dann ausgegeben, und dabei nach 80 „Spalten“ umgebrochen. Im Beispiel wird die Datei „datei“ benutzt, in der ohne Umbrüche folgender Text steht: | ||
* Dies ist ein Text, der bei einem normalgroßen Terminalfenster nach 81 Zeichen umgebrochen werden würde. Allerdings wäre es hier nun sehr schön, einen anderen Umbruch definieren zu können. Dafür kann man sich des Standardprogramms „fold“ bedienen. | * Dies ist ein Text, der bei einem normalgroßen Terminalfenster nach 81 Zeichen umgebrochen werden würde. Allerdings wäre es hier nun sehr schön, einen anderen Umbruch definieren zu können. Dafür kann man sich des Standardprogramms „fold“ bedienen. | ||
Zeile 12: | Zeile 13: | ||
Wenn man diese Datei nun mittels fold ausgeben lässt, erhält man dieses: | Wenn man diese Datei nun mittels fold ausgeben lässt, erhält man dieses: | ||
{{hc|fold datei|Dies ist ein Text, der bei einem normalgroßen Terminalfenster nach 81 Zeichen um | |||
gebrochen werden würde. Allerdings wäre es hier nun sehr schön, einen anderen Um | |||
bruch definieren zu können. Dafür kann man sich des Standardprogramms „fold“ bed | |||
ienen.}} | |||
Dies entspricht dem, was ein „cat datei“ erzeugt. Wenn man hingegen möchte, dass beim | Dies entspricht dem, was ein „cat datei“ erzeugt. Wenn man hingegen möchte, dass beim Umbrechen die Wörter nicht zerhackt werden, sondern ein Zeilenumbruch nur an Wortgrenzen (Leerzeichen) stattfindet, muss man fold um den parameter „-s“ erweitern | ||
{{hc|fold -s datei|Dies ist ein Text, der bei einem normalgroßen Terminalfenster nach 81 Zeichen | |||
umgebrochen werden würde. Allerdings wäre es hier nun sehr schön, einen anderen | |||
Umbruch definieren zu können. Dafür kann man sich des Standardprogramms „fold“ | |||
bedienen.}} | |||
Der eigentliche Einsatzzweck des Programms ist allerdings, das Schmalermachen von Texten. Dazu übergibt man dem Aufruf den Parameter „-w N“, wobei „N“ der gewünschten Breite entspricht. Wenn man will, dass der Text | Der eigentliche Einsatzzweck des Programms ist allerdings, das Schmalermachen von Texten. Dazu übergibt man dem Aufruf den Parameter „-w N“, wobei „N“ der gewünschten Breite entspricht. Wenn man will, dass der Text nach 34 Zeichen umgebrochen wird, sieht das so aus: | ||
{{hc|fold -w 34 datei|Dies ist ein Text, der bei einem n | |||
ormalgroßen Terminalfenster nach 8 | |||
1 Zeichen umgebrochen werden würde | |||
. Allerdings wäre es hier nun sehr | |||
schön, einen anderen Umbruch defi | |||
nieren zu können. Dafür kann man s | |||
ich des Standardprogramms „fold“ b | |||
edienen.}} | |||
Wenn man nun noch den Parameter „-s“ dranhängt, damit die Wortgrenzen berücksichtigt werden, bekommt man folgendes: | Wenn man nun noch den Parameter „-s“ dranhängt, damit die Wortgrenzen berücksichtigt werden, bekommt man folgendes: | ||
{{hc|fold -sw 34 datei|Dies ist ein Text, der bei einem | |||
normalgroßen Terminalfenster nach | |||
81 Zeichen umgebrochen werden | |||
würde. Allerdings wäre es hier | |||
nun sehr schön, einen anderen | |||
Umbruch definieren zu können. | |||
Dafür kann man sich des | |||
Standardprogramms „fold“ bedienen.}} | |||
In der Manpage zu „fold“ stehen noch weitere Parameter, mittels derer man die Zählweise beeinflussen kann. | In der [[Manpage]] zu „fold“ stehen noch weitere Parameter, mittels derer man die Zählweise beeinflussen kann. | ||
== Umleitungsbeispiele == | == Umleitungsbeispiele == | ||
Wie oben beschrieben kann fold auch von der Standardeingabe lesen. Wenn man also einen Text schreiben will, der nach N zeichen umgebrochen werden soll, und man dies nicht manuell machen will, kann man folgendes machen: | Wie oben beschrieben kann fold auch von der Standardeingabe lesen. Wenn man also einen Text schreiben will, der nach N zeichen umgebrochen werden soll, und man dies nicht manuell machen will, kann man folgendes machen: | ||
{{hc|fold -sw 30 -|Dieser Text hier wird direkt an fold übergeben, das den Text nach 30 Spalt | |||
en an der davorliegenden Wortgrenze umbricht.[Enter, dann Strg+D] | |||
Dieser Text hier wird direkt | |||
an fold übergeben, das den | |||
Text nach 30 Spalten an der | |||
davorliegenden Wortgrenze | |||
umbricht.}} | |||
Mittels „fold -sw 30 - > zieldatei“ kann man sich die Ausgabe statt auf die Standardausgabe auch in die Datei „zieldatei“ schreiben lassen. | Mittels „fold -sw 30 - > zieldatei“ kann man sich die Ausgabe statt auf die Standardausgabe auch in die Datei „zieldatei“ schreiben lassen. | ||
Zeile 71: | Zeile 64: | ||
Eine weitere Möglichkeit ist, mittels Pipe etwas an fold zu übergeben: | Eine weitere Möglichkeit ist, mittels Pipe etwas an fold zu übergeben: | ||
{{hc|uname -a | fold -sw 30|Linux demo 2.6.27-ARCH #1 SMP | |||
PREEMPT Mon Dec 8 23:24:22 | |||
CET 2008 x86_64 Intel(R) | |||
Core(TM)2 Duo CPU E8400 @ | |||
3.00GHz GenuineIntel GNU/Linux}} | |||
… im Gegensatz zu … | … im Gegensatz zu … | ||
{{hc|uname -a|Linux demo 2.6.27-ARCH #1 SMP PREEMPT Mon Dec 8 23:24:22 CET 2008 x86_6 | |||
4 Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz GenuineIntel GNU/Linux}} | |||
Auch die Eingabeumleitung funktioniert mit fold: | Auch die Eingabeumleitung funktioniert mit fold: | ||
{{hc|fold -sw 30 < datei|Dies ist ein Text, der bei | |||
einem normalgroßen | |||
Terminalfenster nach 81 | |||
Zeichen umgebrochen werden | |||
würde. Allerdings wäre es | |||
hier nun sehr schön, einen | |||
anderen Umbruch definieren zu | |||
können. Dafür kann man sich | |||
des Standardprogramms „fold“ | |||
bedienen.}} | |||
[[Kategorie: | [[Kategorie:Konsole]] | ||
[[Kategorie:Grundlagen]] |
Aktuelle Version vom 20. Oktober 2021, 13:44 Uhr
Wenn man in einem Terminalfenster eine Datei, die Text beinhaltet, mittels cat ausgibt, wird dieser Text am Rand des Terminalfensters umgebrochen. Je breiter das Fenster ist, desto länger sind dadurch die Zeilen. Mittels des Programms fold ist es möglich, den Zeilenumbruch zu beeinflussen.
So kann man zum Beispiel angeben, dass der Text nach 30 Zeichen umgebrochen werden soll. Außerdem kann beeinflusst werden, wie umgebrochen werden soll. Wenn die Umbruch-Angabe für fold allerdings länger ist, als das Terminal ermöglicht, wird zusätzlich noch am Terminal-„Ende“ umgebrochen.
Verwendung
Das Programm kann – wie die meisten Linux-Programme – entweder direkt aufgerufen werden und akzeptiert neben der Parameter eine Datei oder „stdin“ (repräsentiert durch ein Minus) als Quelle. Natürlich können auch hier Ein- und Ausgabe-Umleitungen verwendet werden.
Der einfachste Aufruf ist jedoch, einfach einen Dateinamen zu übergeben. Der Inhalt der Datei wird dann ausgegeben, und dabei nach 80 „Spalten“ umgebrochen. Im Beispiel wird die Datei „datei“ benutzt, in der ohne Umbrüche folgender Text steht:
- Dies ist ein Text, der bei einem normalgroßen Terminalfenster nach 81 Zeichen umgebrochen werden würde. Allerdings wäre es hier nun sehr schön, einen anderen Umbruch definieren zu können. Dafür kann man sich des Standardprogramms „fold“ bedienen.
Wenn man diese Datei nun mittels fold ausgeben lässt, erhält man dieses:
fold datei
Dies ist ein Text, der bei einem normalgroßen Terminalfenster nach 81 Zeichen um gebrochen werden würde. Allerdings wäre es hier nun sehr schön, einen anderen Um bruch definieren zu können. Dafür kann man sich des Standardprogramms „fold“ bed ienen.
Dies entspricht dem, was ein „cat datei“ erzeugt. Wenn man hingegen möchte, dass beim Umbrechen die Wörter nicht zerhackt werden, sondern ein Zeilenumbruch nur an Wortgrenzen (Leerzeichen) stattfindet, muss man fold um den parameter „-s“ erweitern
fold -s datei
Dies ist ein Text, der bei einem normalgroßen Terminalfenster nach 81 Zeichen umgebrochen werden würde. Allerdings wäre es hier nun sehr schön, einen anderen Umbruch definieren zu können. Dafür kann man sich des Standardprogramms „fold“ bedienen.
Der eigentliche Einsatzzweck des Programms ist allerdings, das Schmalermachen von Texten. Dazu übergibt man dem Aufruf den Parameter „-w N“, wobei „N“ der gewünschten Breite entspricht. Wenn man will, dass der Text nach 34 Zeichen umgebrochen wird, sieht das so aus:
fold -w 34 datei
Dies ist ein Text, der bei einem n ormalgroßen Terminalfenster nach 8 1 Zeichen umgebrochen werden würde . Allerdings wäre es hier nun sehr schön, einen anderen Umbruch defi nieren zu können. Dafür kann man s ich des Standardprogramms „fold“ b edienen.
Wenn man nun noch den Parameter „-s“ dranhängt, damit die Wortgrenzen berücksichtigt werden, bekommt man folgendes:
fold -sw 34 datei
Dies ist ein Text, der bei einem normalgroßen Terminalfenster nach 81 Zeichen umgebrochen werden würde. Allerdings wäre es hier nun sehr schön, einen anderen Umbruch definieren zu können. Dafür kann man sich des Standardprogramms „fold“ bedienen.
In der Manpage zu „fold“ stehen noch weitere Parameter, mittels derer man die Zählweise beeinflussen kann.
Umleitungsbeispiele
Wie oben beschrieben kann fold auch von der Standardeingabe lesen. Wenn man also einen Text schreiben will, der nach N zeichen umgebrochen werden soll, und man dies nicht manuell machen will, kann man folgendes machen:
fold -sw 30 -
Dieser Text hier wird direkt an fold übergeben, das den Text nach 30 Spalt en an der davorliegenden Wortgrenze umbricht.[Enter, dann Strg+D] Dieser Text hier wird direkt an fold übergeben, das den Text nach 30 Spalten an der davorliegenden Wortgrenze umbricht.
Mittels „fold -sw 30 - > zieldatei“ kann man sich die Ausgabe statt auf die Standardausgabe auch in die Datei „zieldatei“ schreiben lassen.
Eine weitere Möglichkeit ist, mittels Pipe etwas an fold zu übergeben:
uname -a | fold -sw 30
Linux demo 2.6.27-ARCH #1 SMP PREEMPT Mon Dec 8 23:24:22 CET 2008 x86_64 Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz GenuineIntel GNU/Linux
… im Gegensatz zu …
uname -a
Linux demo 2.6.27-ARCH #1 SMP PREEMPT Mon Dec 8 23:24:22 CET 2008 x86_6 4 Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz GenuineIntel GNU/Linux
Auch die Eingabeumleitung funktioniert mit fold:
fold -sw 30 < datei
Dies ist ein Text, der bei einem normalgroßen Terminalfenster nach 81 Zeichen umgebrochen werden würde. Allerdings wäre es hier nun sehr schön, einen anderen Umbruch definieren zu können. Dafür kann man sich des Standardprogramms „fold“ bedienen.