Connect with us

Wie man

So verwenden Sie den fold-Befehl unter Linux

So verwenden Sie Curl zum Herunterladen von Dateien über die Linux-Befehlszeile

Fatmawati Achmad Zaenuri/Shutterstock

Das Linux fold Befehl bringt widerspenstige Ausgabe auf die Ferse. Lesen Sie breite Textblöcke, endlose Zeichenfolgen und unformatierte Streams, indem Sie die Breite der Ausgabe steuern. Lernen wie.

Wie Textzeilen im Linux-Terminal funktionieren

Erste Regel des Linux-Kampfes: Kenne deinen Feind. Also definieren wir es. Was genau ist eine Textzeile? Es ist eine Folge von Zeichen – Buchstaben, Zahlen, Symbole und Leerzeichen –, die durch ein spezielles Byte abgeschlossen wird, das „eine neue Zeile beginnen“ bedeutet. Unter Linux und Unix, das Newline-Zeichen, auch Zeilenvorschub genannt, wird als Zeilenende-Indikator verwendet. Dies ist ein Byte mit einem Wert von 0x0a in hexadezimal und zehn dezimal.

Verschiedene Betriebssysteme verwenden unterschiedliche Bytewerte, um das Ende einer Zeile anzuzeigen. Windows verwendet eine Zwei-Byte-Sequenz. In Windows-Textdateien folgt auf das Newline-Zeichen unmittelbar das Wagenrücklaufzeichen, die hexadezimal 0x0d und dezimal dreizehn ist.

Die Begriffe „Linefeed“ und „Carriage Return“ stammen aus der Vergangenheit zur Schreibmaschine. Die Platte, der Zylinder, um den das Papier gewickelt war, war auf einem beweglichen Wagen montiert. Der Schlitten bewegt sich jedes Mal, wenn Sie eine Taste drücken, um eine Zeichenbreite nach links. Um eine neue Zeile zu beginnen, drückten Sie einen Hebel, der den Schlitten in seine ursprüngliche Position zurückbrachte, die Walze drehte und das Papier um eine Zeile nach oben bewegte. Dieser Vorgang wurde als Wagenrücklauf bezeichnet, und die Drehung des Zylinders (und der Vorschub des Papiers) wurde als Zeilenvorschub bezeichnet.

Der Hebel wurde durch einen Schlüssel ersetzt, als die Schreibmaschine elektrifiziert wurde. Der Schlüssel war mit Carriage Return oder einfach Return beschriftet. Einige frühe Computer wie das BBC-Mikro habe den namen noch benutzt Return auf das, was wir jetzt das nennen Enter Schlüssel.

Newline-Zeichen sind in der Regel nicht zu sehen. Sie können nur ihre . Das Newline-Zeichen zwingt Software, die Text anzeigt oder verarbeitet, dazu, eine neue Zeile zu beginnen.

Aber was ist das Problem mit langen Schlangen?

Text, der keine oder nur sehr wenige Zeilenumbrüche enthält, ist zu breit, um bequem im Terminalfenster gelesen zu werden. Das ist ärgerlich, aber machbar.

Ein noch gefährlicheres Problem ist der Umgang mit Zeilen mit einer solchen Länge, dass sie ein Problem für die Software darstellen, die den Text verarbeiten, übertragen oder empfangen muss. Dies kann durch interne Pufferlängen oder andere Aspekte der Software verursacht werden, die Sie nicht anpassen können.

Aber dafür gibt es eine Lösung, genannt fold.

Erste Schritte mit Falten

Schauen wir uns einen Textabschnitt an, der sehr, sehr lange Zeilen enthält. Beachten Sie, dass wir hier nicht über Sätze sprechen. (Obwohl der Text aus Herman Melvilles Moby Dick stammt, haben wir also das Beste aus beiden Welten.)

Eine Textzeile ist alles vom letzten Zeilenumbruchzeichen (oder dem Anfang der Datei, wenn es die erste Zeile in der Datei ist) bis zum nächsten Zeilenumbruchzeichen, unabhängig davon, was dazwischen liegt. Die Zeile kann viele Sätze enthalten. Es kann im Terminalfenster mehrmals umlaufen. Aber es ist immer noch eine Textzeile.

Schauen wir uns den Text in seiner Rohform an:

less moby-dick.txt

Der Text wird angezeigt in less:

Der Text erstreckt sich von einem Rand des Fensters zum anderen, und die Zeilenumbrüche sind hässlich und brechen Wörter in der Mitte.

Wir haben eine andere Version der Datei mit kurzen Zeilen:

less short-lines-moby-dick.txt

Die Zeilen in dieser Datei sind viel kürzer. Jede Zeile wird mit einem Newline-Zeichen abgeschlossen.

Wenn wir die verwenden hexdump Befehl, wir können Sehen Sie sich die Byte-Werte in der Datei an und sehen Sie sich die Newline-Zeichen an. Die -C (kanonische) Option formatiert die Ausgabe, um hexadezimale Werte im Hauptteil der Anzeige mit den Textäquivalenten in einer Spalte an der Seite anzuzeigen. Wir leiten die Ausgabe in less:

hexdump -C short-lines-moby-dick.txt | less

Durch Drücken des Schrägstrichs “/“Sie werden eintreten less‘s Suchfunktion. Geben Sie „0a“ ein und drücken Sie Enter. Die Zeilenumbruchzeichen werden im Text hervorgehoben. Sie können durch die Datei scrollen und sehen, wo sie erscheinen. Bei Bedarf können Sie die Ausgabe mit der Taste seitwärts scrollen Left Arrow und Right Arrow Schlüssel.

Ein Newline-Zeichen am Ende jeder Zeile kann an sich schon eine Einschränkung darstellen. Unabhängig davon, welches Programm oder Fenster diesen Text anzeigt, können sich die Linien nicht an Fenster anpassen, deren Breite breiter ist als die Linien selbst. Die Zeilenlänge wurde durch die Newline-Zeichen begrenzt.

Es gibt also Probleme mit langen und kurzen Leitungen gleichermaßen.

Reduzierung langer Schlangen

Die fold Befehl hat eine Option -w (Breite), mit der Sie eine neue maximale Breite für einen Textabschnitt festlegen können. Wir zeigen den Moby Dick-Text mit einer maximalen Breite von 50 Zeichen an:

fold -w 50 moby-dick.txt

Der Text wird im Terminalfenster mit der neuen maximalen Dateilänge angezeigt. Die Originaldatei wird nicht geändert. Es ist nur die Ausgabe von fold das ist neu formatiert.

Auf den ersten Blick sieht das viel besser aus. Aber Wörter werden immer noch in der Mitte am Zeilenende gespalten. Es ist definitiv einfacher zu lesen, aber einige der umständlichen Wortbrüche sind irritierend.

Obwohl es so aussieht, als ob der rechte Rand des Textes nach innen und außen schwankt, sind alle Zeilenlängen gleich. Die Zeilen, die ein Zeichen kürzer erscheinen als der Rest, enden zufällig mit einem Leerzeichen.

Trennen von Linien an Leerzeichen

Wir können die nutzen -s (Leerzeichen), um sicherzustellen, dass Zeilen nur bei Leerzeichen geteilt werden und keine Wörter über zwei Zeilen unterbrochen werden.

fold -w 50 -s moby-dick.txt

Die Ausgabe hat jetzt einen unregelmäßigen rechten Rand, ist aber leichter zu lesen. Alle Wörter enden in den Zeilen, mit denen sie begonnen haben.

Kurze Zeilen länger machen

Wir können nicht nur lange Schlangen verkürzen, sondern auch verwenden fold um die erzwungenen Leitungslängen kürzerer Leitungen zu entfernen.

fold -w 75 short-lines-moby-dick.txt

Die Zeilenumbruchzeichen werden entfernt, und der Text wird jetzt auf oder vor der zugewiesenen maximalen Länge umgebrochen.

Änderungen dauerhaft machen

fold kann die Originaldatei nicht ändern. Wenn Sie die Änderungen beibehalten möchten, müssen Sie die Ausgabe von . umleiten fold in eine neue Datei. Wir leiten die Ausgabe in eine Datei namens „modified-moby-dick.txt“ um.

fold -w 75 -s short-lines-moby-dick.txt > modified-moby-dick.txt

Schauen wir uns unsere neue Datei an:

less modified-moby-dick.txt

Wie sieht unsere neue Datei aus?

Der Text wird jetzt sauber mit unserer neuen Zeilenbreite umbrochen, die breiter ist als die Zeilenlängen der Originaldatei.

Falzen mit Streams verwenden

Wir können benutzen fold um Textströme neu zu formatieren. Es ist nicht darauf beschränkt, ausschließlich mit Dateien zu arbeiten. Mal sehen, was die Rohausgabe der journalctl Werkzeug aussieht. Die -f (folgen) Option zeigt die neuesten Einträge im systemd Tagebuch und aktualisiert, wenn neue Einträge eintreffen.

sudo journalctl -f

Die Ausgabe wird am Rand des Terminalfensters umbrochen.

Es sieht nicht schlecht aus, aber zur Veranschaulichung reduzieren wir die Breite etwas. Wir werden die Ausgabe von weiterleiten journalctl hinein fold. Wir setzen die maximale Breite auf 65 Zeichen und brechen die Zeilen nur in Leerzeichen.

sudo journalctl -f | fold -w 65 -s

Das Display sieht etwas weniger überwältigend aus und auch einen Hauch ordentlicher.

Wände aus festem Text können undurchdringlich erscheinen. Sie sind abstoßend und kräftezehrend, damit umzugehen. Wenn Sie den Wald von den Bäumen aus sehen müssen, rufen Sie an fold und ein bisschen Ordnung schaffen.

Continue Reading
Click to comment

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tendencia