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)