So ersetzen Sie mehrere Linien mit dem Befehl SED

So ersetzen Sie mehrere Linien mit dem Befehl SED
Manchmal muss mehrere Zeilen einer Datei durch ein bestimmtes Zeichen oder Text ersetzt werden. Unter Linux existieren verschiedene Befehle, um mehrere Zeilen einer Datei zu ersetzen. Der Befehl 'sed' ist einer von ihnen, der diese Art von Aufgabe erledigt. Die vollständige Form von 'SED' ist Steam Editor und wird hauptsächlich zum Lesen und Umwandeln des Textes auf unterschiedliche Weise verwendet, indem ein regulärer Ausdruck verwendet wird. Wie dieser Befehl verwendet werden kann, um die mehreren Zeilen einer Datei auf unterschiedliche Weise zu ersetzen, werden in diesem Tutorial erläutert.

Häufig verwendetes 'Sed' -Cheat Sheet:

Die am häufigsten verwendeten Zeichen, die im Befehl "SED" verwendet werden.

Charakter Zweck
A Es wird zum Anhängen von Inhalten verwendet.
B Es wird zum Verzweigungsinhalt verwendet.
C Es wird zum Ändern des Inhalts verwendet.
D Es wird zum Löschen einer Zeile einer Datei verwendet.
D Es wird verwendet, um die erste Zeile einer Datei zu löschen.
G Früher kopierte es aus dem Haltetext.
G Es wird verwendet, um sich vom Holding -Text anzuhängen.
H Es wird verwendet, um im Haltetext zu kopieren.
H Es wird verwendet, um den Holding -Text anzuhängen.
ich Es wird zum Insertion verwendet.
ICH Es wird verwendet, um die Ersatzlinie zu drucken.
N Es wird verwendet, um in die nächste Zeile zu gehen.
N Es wird verwendet, um die nächste Eingangslinie anzuhängen.
P Es wird zum Drucken verwendet.
P Es wird verwendet, um die erste Zeile zu drucken.
Q Es wird verwendet, um aufzuhören.
Q Es wird verwendet, um sofort aufzuhören.
R Es wird verwendet, um die Datei zu lesen.
R Es wird verwendet, um die Zeile aus der Datei zu lesen.
S Es wird verwendet, um zu ersetzen.
T Es wird verwendet, um Substitution zu testen.
T Es wird verwendet, um ohne Substitution zu testen.
w Es wird verwendet, um in die Datei zu schreiben.
W Es wird verwendet, um eine Zeile zur Datei zu schreiben.
X Es wird verwendet, um Muster auszutauschen und zu halten.
y Es wird verwendet, um zu übersetzen.
z Es wird verwendet, um die Linie zu löschen.
'=' Es wird verwendet, um die Zeilennummer zu drucken.

Ersetzen Sie mehrere Linien, indem Sie den Befehl "SED" aus dem Terminal verwenden:

Wie der Befehl 'SED' verwendet werden kann, um die mehreren Zeilen aus einer Datei aus dem Terminal aus diesem Teil dieses Tutorials zu ersetzen. Erstellen Sie eine Datei mit dem Namen sed.txt Testen Sie mit dem folgenden Inhalt die Befehle dieses Teils.

sed.txt

Die vollständige Form von SED ist "Stream Editor".

Es ist ein Unix -Dienstprogramm, mit dem der Text in einem anderen Format gelesen und konvertiert wird.

Es wurde von Lee E entwickelt. McMahon.

Es wird für die Textverarbeitung verwendet.

Es unterstützt regelmäßige Ausdrücke.

Beispiel 1: Ersetzen Sie zwei aufeinanderfolgende Linien

Der folgende Befehl 'SED' ersetzt zwei aufeinanderfolgende Linien durch eine andere Zeile. Hier wird die Option -Z verwendet, um die aufeinanderfolgenden Zeilen durch Nulldaten zu ersetzen, bevor der Ersatztext hinzugefügt wird. Nach dem Befehl die 3Rd und 4th Zeilen der Datei werden durch den Text ersetzt, "Es ist ein sehr nützliches Werkzeug".

$ cat sed.txt
$ sed -z 's/es wurde von Lee E entwickelt. McMahon.\ nit wird für Text verwendet
wird bearbeitet./Es ist ein sehr nützliches Werkzeug./'sed.txt

Nach dem Ausführen der Befehle wird die folgende Ausgabe angezeigt.

Beispiel 2: Ersetzen Sie mehrere Zeilen basierend auf Match und Global Flag

Der folgende Befehl 'SED' ersetzt alle Zeilen, die mit dem Wort beginnen, 'Es' durch das Wort ''Diese Linie wird ersetzt ''.

$ cat sed.txt
$ sed 's/^es.*/Diese Linie wird ersetzt/g 'sed.txt

Nach dem Ausführen der Befehle wird die folgende Ausgabe angezeigt. Drei Zeilen enthalten das Wort 'Es' in der Datei. Diese Zeilen wurden also durch den Ersatztext ersetzt.

Beispiel-3: Ersetzen Sie mehrere Zeilen basierend auf dem Befehl Match und Next-Line

Der folgende Befehl 'SED' ersetzt das Wort ','Ist"Durch das Wort", "War'Mit dem Befehl nächster Linie' N '.

$ cat sed.txt
$ sed 'n;/is/s/is/war/' sed.txt

Nach dem Ausführen der Befehle wird die folgende Ausgabe angezeigt. Hier, 'Ist' existiert in der 2nd und 4th Zeilen der Datei und diese Zeilen werden durch das Wort geändert 'War'.

Ersetzen Sie mehrere Zeilen, indem Sie die Skriptdatei "SED" erstellen:

In den vorherigen Beispielen wurden 'SED' Befehle aus dem Terminal ausgeführt. Es handelt sich jedoch um eine Skriptsprache, und wenn das Skript mehrere Anweisungen enthält, ist es besser, eine SED -Datei mit dem Skript zu erstellen. Erstellen Sie eine Textdatei mit dem Namen Studenten.txt mit dem folgenden Inhalt, in dem das Skript "SED" angewendet wird.

Studenten.txt

ID: 111045
Name: Robert
Abteilung: CSE
Batch: 35
ID: 111876
Name: Joseph
Abteilung: BBA
Batch: 27
ID: 111346
Name: William
Abteilung: CSE
Batch: 45
ID: 111654
Name: Charles
Abteilung: EEE
Batch: 41
ID: 111346
Name: John
Abteilung: CSE
Batch: 25
ID: 111746
Name: Thomas
Abteilung: CSE
Batch: 15

Beispiel-4: Ersetzen Sie mehrere Zeilen einer Datei mit der Skriptdatei von 'SED'

Erstellen Sie eine SED -Datei, benannt nach ersetzen.sed mit dem folgenden Inhalt, um die mehreren Zeilen basierend auf dem Suchmuster zu ersetzen. Hier das Wort 'CSE'wird in der Textdatei durchsucht und wenn die Übereinstimmung existiert, wird erneut die Nummer 35 und 15 durchsucht. Wenn das zweite Spiel in der Datei vorhanden ist, wird es durch die Nummer 45 ersetzt.

ersetzen.sed

/ Cse/
p; n;
/ 35/
s/35/45/;
p; d;

/15/
S/15/55/;
p; d;


P;

Führen Sie den folgenden Befehl aus, um den vorhandenen Inhalt der Datei zu überprüfen. 'CSE' erschien viermal in der Textdatei. 35 und 15 existieren an zwei Stellen.

$ CAT -Studenten.txt

Der folgende Befehl ersetzt den Inhalt der mehreren Zeilen basierend auf dem SED -Skript.

$ sed -n -f ersetzen.SED -Studenten.txt

Die folgende Ausgabe wird nach dem Ausführen des Befehls angezeigt.

Abschluss

In diesem Tutorial wurden verschiedene Möglichkeiten zum Ersetzen mehrerer Zeilen oder des Inhalts der Mehrfachzeilen mit dem Befehl 'SED' gezeigt. Wie das Skript "SED" aus einer SED -Datei ausgeführt werden kann, wird auch in diesem Tutorial gezeigt. Ich hoffe.