Zeilentausch [h|g|G|x ]
- Die aktuell bearbeitete Zeile hält der Sed in einem Zwischenspeicher und bearbeitet sie in diesem »Pattern Space«.
- Hat der Editor seine Arbeit beendet, gibt er die Zeile aus und lädt die folgende Zeile der Eingabedatei in den Zwischenspeicher.
h
|
Mit dem Kommando »h« kann der aktuelle Zwischenspeicher in einen Puffer gesichert werden (»holding buffer«).
|
G
|
Das Kommando »G« fügt den Inhalt dieses Sicherungspuffers hinter der aktuell bearbeiteten Zeile ein.
|
g
|
»g« ersetzt die aktuelle Zeile durch den Inhalt des Sicherungspuffers.
|
x
|
Den Inhalt der beiden Puffer vertauscht das Kommando »x«.
|
Beispiel 1
sed -e '/sed/{h;d;}' -e '4G' -e '4q' test.txt
1 Der Aufruf des Stream Editors besitzt immer das Format:
2
4
3 sed 'Kommando' Dateiname
sed -e '/sed/{h;d;}' -e '4g' -e '5q' test.txt
1 Der Aufruf des Stream Editors besitzt immer das Format:
2
3 sed 'Kommando' Dateiname
5 Dabei kann dem Kommando mitgeteilt werden, welche Zeilen der
Erklärung
- Das erste Kommando »-e '/sed/{h;d;}'« in teilt dem Editor mit, die Zeile, die sed enthält, zuerst in den Zwischenspeicher zu sichern und nachfolgend zu löschen.
- Das zweite Kommando vollzieht das Einfügen des Inhalts des Puffers. »-e '4G'« fügt nach der 4.Zeile ein (Achtung: die gelöschte Zeile wird mitgezählt!)»-e '4g'« ersetzt die 4.Zeile.
- Das letzte Kommando »-e '4q'« beendet die Arbeit des Editors nach der 4.
- Zeile.
Beispiel 2
sed -e '/Aufruf/h' -e '/Angabe/x' -e '$G' test.txt
1 Der Aufruf des Stream Editors besitzt immer das Format:
2
3 sed 'Kommando' Dateiname
4
5 Dabei kann dem Kommando mitgeteilt werden, welche Zeilen der
6 Eingabedatei es bearbeiten soll.
- Als Adressierung kommen folgende
7 Mechanismen in Frage:
8
1 Der Aufruf des Stream Editors besitzt immer das Format:
10 Nummer Genau diese Zeile
11 Start, Ende Alle Zeilen von "Start" bis "Ende"
12 $ Symbolisiert die letzte Zeile
13 RegEx Zeilen, die den Regulären Ausdruck enthalten
14 1, RegEx Von Zeile 1 bis zur ersten Zeile, die RegEx enthält
9 Keine Angabe Alle Zeilen
Erklärung
- Enthält eine Zeile das Muster »Aufruf«, wird sie im Zwischenpuffer abgelegt.
- Steht in einer Zeile »Angabe«, so wird diese Zeile mit dem Inhalt des Zwischenpuffers vertauscht.
- Der Inhalt des Zwischenpuffers wird hinter der letzten Zeile eingefügt.