Was ist die G -Option in SED

Was ist die G -Option in SED

"Der Begriff sed ist eine Abkürzung von Stream Editor. In Unix/Linux die sed Befehl analysiert und transformiert Streams (Texte in den meisten Fällen). Es ist ein Befehlszeilen-Tool, das in jedem Unix/Linux-System vorinstalliert ist.”

In diesem Leitfaden werden wir das untersuchen G Option in sed.

Grundnutzung von SED

Die häufigste Verwendung des SED -Befehls besteht darin, die Inhalte in einem bestimmten Stream zu finden und zu ersetzen. Die Befehlsstruktur lautet wie folgt:

$ sed 's ///'


Schauen Sie sich das folgende Beispiel an:

$ echo "The Quick Brown Fox" | sed 's/the/the/'



Hier,

    • Der Echo Der Befehl druckt die angegebene Zeichenfolge auf der Stdout. In Bash, Stdout, Stdin und Stderr sind integrierte Datenströme.
    • Der sed Befehl verwendet Stdout Als Stream arbeitet, wie angegeben und druckt die Ausgabe auf der Konsole.

Wenn Sie versuchen, eine Textdatei zu bearbeiten, ändert SED den Dateiinhalt standardmäßig nicht an. Dies soll einen versehentlichen Datenverlust vermeiden. Um den Inhalt einer Datei direkt zu ändern.

Die G -Option in SED

Beim Finden und Ersetzen das Standardverhalten von sed soll seine Handlungen kündigen, wenn er die erste Instanz gefunden hat. Das folgende Beispiel zeigt dieses Verhalten perfekt:

$ echo "Das The the the" | sed 's/the/the/'



Hier,

    • Verwendung der Echo Befehl geben wir das gleiche Wort „das“ mehrmals an die sed Befehl.
    • In der Ausgabe wird jedoch nur die erste Instanz von „The“ in „The“ verwandelt.

Um SED zu unterweisen, alle passenden Instanzen des angegebenen Musters zu transformieren, müssen wir die G -Option hinzufügen. Aktualisieren Sie den Befehl wie folgt:

$ echo "Das The the the" | sed 's/the/the/g'



Jetzt werden alle Fälle von „The“ in „das“ ordnungsgemäß geändert.

Die G -Option in SED

Wir kommen schließlich zu dem Schwerpunkt dieses Leitfadens. Während G Die Option gilt für die Textsubstitution, die G Option wird für einen völlig anderen Zweck verwendet.

Verwendung der G Option können wir den Speicherplatz halten, um Platz zu halten. In einfachen Worten können wir vor/nach dem Matching -Muster neue Zeilen hinzufügen.

Zur Demonstration habe ich eine Beispieltextdatei erstellt prüfen.txt:

Katze << EOF > prüfen.txt
Die
schnell
braun
Die
Fuchs
Eof


Zusätzlicher Abstand

Wir können jetzt verschiedene Vorgänge im Abstand der Datei ausführen. Verwenden Sie beispielsweise den folgenden Befehl, um die Datei zu verdoppeln, um die Datei zu verdoppeln:

$ sed g Test.txt



In ähnlicher Weise können wir die Datei verdreifachen:

$ sed 'g; g' Test.txt



Hier,

    • In beiden Fällen, weil wir kein Muster anbieten, das für übereinstimmt, sed Übereinstimmt für alle Texte in der Datei.
    • Der sed Der Befehl arbeitet in einem bestimmten Textstream zeilenweise zeilenweise. Nach der Übereinstimmung jeder Zeile (weil kein spezifisches Muster bereitgestellt wurde) wird eine neue Zeile hinzugefügt.

Zusätzlichen Abstand entfernen

Wir können auch die verwenden G Option zum Löschen aller leeren Zeilen und dem doppelten Speicherplatz:

$ sed 'g; g' Test.txt | sed '/^$/d; g'

Einfügen von leeren Zeilen vor/nach den Übereinstimmungen

Wir können ein Muster mit dem regulären Ausdruck angeben und SED sagen, dass er vor/danach eine leere Linie hinzufügen soll.

Das erste Beispiel wird darin bestehen, eine leere Zeile unter dem Matching -Muster hinzuzufügen:

$ sed '/the/g' Test.txt



Im nächsten Beispiel wird eine leere Zeile über dem Matching -Muster hinzugefügt:

$ sed '/the/x; p; x;' Test.txt



Schließlich können wir beide zusammen kombinieren, um leere Zeilen um das passende Muster einzulegen:

$ sed '/the/x; p; x; g;' Test.txt


Abschließende Gedanken

In diesem Leitfaden haben wir erfolgreich verschiedene Möglichkeiten demonstriert, die zu verwenden G Option mit sed Fügen Sie Räume im Text hinzu. Diese Technik kann in verschiedenen Situationen nützlich sein, beispielsweise in einem Debug -Protokoll bestimmte Zeilen auszusetzen.

Ein großer Vorteil von SED ist seine regelmäßige Ausdrucksunterstützung. Erfahren Sie mehr über SED mit Regex. Der SED -Befehl kann auch leicht in Shell Scripting integriert werden.

Happy Computing!