GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Unix Sed Tutorial:So führen Sie mehrere Sed-Befehle aus

Frage: Kann ich mehrere sed-Befehle kombinieren? Kann ich zwei sed-Befehle kombinieren und als einzelnen sed-Befehl ausführen?

Antwort: In unseren vorherigen Artikeln haben wir sed mit einzelnen Befehlen gelernt – Drucken, Löschen, Ersetzen und Dateischreiben.

Lassen Sie uns in diesem Artikel überprüfen, wie Sie mehrere sed-Befehle mit der Option -e kombinieren, wie unten gezeigt.

Syntax:

#sed -e 'command' -e 'command' filename

Hinweis: Die Option -e ist optional für sed mit einem einzigen Befehl. sed führt jeden Befehlssatz aus, während die Eingabe aus dem Musterpuffer verarbeitet wird.

Lassen Sie uns zuerst die Datei thegeekstuff.txt erstellen, die in allen unten genannten Beispielen verwendet wird.

# cat thegeekstuff.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development
10.Windows- Sysadmin, reboot etc.

1.4. und 2. Zeile aus der Eingabe löschen

Dieses Sed-Beispiel löscht die vierte und zweite Zeile aus der Datei thegeekstuff.txt. Mit der Option „-e“ können Sie eine beliebige Anzahl von Befehlen mit sed eingeben.

$ sed -e '4d' -e '2d' thegeekstuff.txt
1. Linux - Sysadmin, Scripting etc.
3. Hardware
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development
10.Windows- Sysadmin, reboot etc.

2. Drucken Sie die Linien, die mit Muster1 übereinstimmen, und die Linien, die mit Muster2 übereinstimmen

Dieses Sed-Beispiel gibt alle Zeilen aus, die entweder dem Muster „Storage“ oder „Software“ entsprechen.

$ sed -n  -e '/Software/p'  -e '/Storage/p'  thegeekstuff.txt
5. Storage
9. Software Development

3. Löschen Sie die erste, letzte und alle Leerzeilen aus der Eingabe

Dieses Sed-Beispiel löscht die erste Zeile, die letzte Zeile und alle leeren Zeilen aus der Eingabedatei.

$ sed -e '1d' -e '$d' -e '/^$/d' thegeekstuff.txt
2. Databases - Oracle, mySQL etc.
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development

Linux
  1. So führen Sie Befehle/Skripte während des Neustarts oder Starts automatisch aus

  2. Wie führe ich mehrere Befehle aus, wenn ich find verwende?

  3. Kombinieren Sie mehrere Unix-Befehle in einer Ausgabe

  4. Wie erstelle ich benutzerdefinierte Befehle in Unix/Linux?

  5. Wie benenne ich mehrere Dateien in einem einzigen Befehl oder Skript in Unix um?

So führen Sie Shell-Befehle über einen HTTP-Server aus

So führen Sie mehrere Linux-Befehle in einem einzigen Befehl aus

So führen Sie mehrere Linux-Befehle gleichzeitig im Linux-Terminal aus

Unix Sed Tutorial:So schreiben Sie mit Sed in eine Datei

Unix-Sed-Tutorial:Fortgeschrittene Sed-Ersetzungsbeispiele

Unix-Sed-Tutorial:6 Beispiele für Sed-Verzweigungsoperationen