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

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

Dieser Artikel ist Teil der Unix Sed Tutorial-Reihe. In früheren Artikeln haben wir über sed print operation , sed delete operation und sed find and replace diskutiert.

Lassen Sie uns in diesem Artikel überprüfen, wie Sie einen Teil einer Datei extrahieren und ihn mit sed in eine andere Datei schreiben.

Sed bietet den Befehl „w“, um die Musterraumdaten in eine neue Datei zu schreiben.

Sed erstellt oder kürzt den angegebenen Dateinamen, bevor es die erste Eingabezeile liest, und schreibt alle Übereinstimmungen in eine Datei, ohne die Datei zu schließen und erneut zu öffnen.

Syntax: 

#sed 'ADDERSSw outputfile' inputfilename

#sed '/PATTERN/w outputfile' inputfilename

Sed liest eine Zeile und legt sie in einen Musterpuffer und schreibt den Musterpuffer gemäß den bereitgestellten Befehlen in die angegebene Ausgabedatei.

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.

Sehen wir uns einige Beispiele für Schreibbefehle in sed an.

1. Erste Zeile der Datei schreiben

In diesem Beispiel bezieht sich 1 (Adresse) auf die erste Zeile der Eingabe und w schreibt den Musterpuffer in die Ausgabedatei „output.txt“

$ sed -n '1w output.txt' thegeekstuff.txt

$ cat output.txt
1. Linux - Sysadmin, Scripting etc.

2. Erste und letzte Zeile der Datei schreiben

In diesem Beispiel beziehen sich 1 und $ auf die erste bzw. letzte Zeile.

$ sed -n -e '1w output.txt' -e '$w output.txt' thegeekstuff.txt

$ cat output.txt
1. Linux - Sysadmin, Scripting etc.
10.Windows- Sysadmin, reboot etc.

3. Schreiben Sie die Zeilenübereinstimmungen mit dem Muster Storage oder Sysadmin

In diesem Beispiel schreibt der Befehl sed die Zeilen, die dem Muster „Storage“ oder „Sysadmin“ entsprechen.

$ sed -n -e '/Storage/w output.txt' -e '/Sysadmin/w output.txt' thegeekstuff.txt

$ cat output.txt
1. Linux - Sysadmin, Scripting etc.
5. Storage
10.Windows- Sysadmin, reboot etc.

4. Schreiben Sie die Zeilen, ab denen das Muster übereinstimmt, bis zum Ende der Datei

In diesem Beispiel repräsentiert /Storage/,$ Zeilenübereinstimmungen von Storage bis zum Ende der Datei.

$ sed -n '/Storage/,$w output.txt' thegeekstuff.txt

$ cat output.txt
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.

5. Schreiben Sie die Zeilen, die mit dem Muster übereinstimmen, und die nächsten beiden Zeilen aus der Übereinstimmung

In diesem Beispiel schreibt der send-Befehl die Zeile matchs für „Storage“ und zwei Zeilen daneben.

$ sed -n '/Storage/,+2w output.txt' thegeekstuff.txt

$ cat output.txt
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)

Linux
  1. Wie ersetze ich eine Zeichenfolge in einer oder mehreren Dateien?

  2. Wie lösche ich mehrere zufällige Zeilen aus einer Textdatei mit Sed?

  3. Wie schreibe ich stderr in eine Datei, während ich tee mit einer Pipe verwende?

  4. Wie füge ich mit sed Text in die erste Zeile einer Datei ein?

  5. Wie entferne ich eine Datei ohne rm?

So konvertieren Sie eine Windows-Datei in eine UNIX-Datei

Gewusst wie:Eine Einführung in die Verwendung von Git

Unix Sed Tutorial:Drucken von Dateizeilen mit Adresse und Mustern

Unix Sed Tutorial:Suchen und Ersetzen von Text in einer Datei mit RegEx

Unix Sed Tutorial:Löschen Sie Dateizeilen mit Adresse und Mustern

Unix Sed Tutorial:Mehrzeilige Dateioperation mit 6 praktischen Beispielen