Zum Inhalt springen

Sed/Zeilentausch: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „»“ durch „''“
K Textersetzung - „ “ durch „ “
 
Zeile 21: Zeile 21:
==== Beispiel 1 ====
==== Beispiel 1 ====
  '''sed -e '/sed/{h;d;}' -e '4G' -e '4q' test.txt'''
  '''sed -e '/sed/{h;d;}' -e '4G' -e '4q' test.txt'''
  1 Der Aufruf des Stream Editors besitzt immer das Format:
1 Der Aufruf des Stream Editors besitzt immer das Format:
  2  
2  
  4  
4  
  3 sed 'Kommando' Dateiname
3 sed 'Kommando' Dateiname
  '''sed -e '/sed/{h;d;}' -e '4g' -e '5q' test.txt'''
  '''sed -e '/sed/{h;d;}' -e '4g' -e '5q' test.txt'''
  1 Der Aufruf des Stream Editors besitzt immer das Format:
1 Der Aufruf des Stream Editors besitzt immer das Format:
  2  
2  
  3 sed 'Kommando' Dateiname
3 sed 'Kommando' Dateiname
  5 Dabei kann dem Kommando mitgeteilt werden, welche Zeilen der
5 Dabei kann dem Kommando mitgeteilt werden, welche Zeilen der


===== Erklärung =====
===== Erklärung =====
Zeile 39: Zeile 39:
==== Beispiel 2 ====
==== Beispiel 2 ====
  '''sed -e '/Aufruf/h' -e '/Angabe/x' -e '$G' test.txt'''
  '''sed -e '/Aufruf/h' -e '/Angabe/x' -e '$G' test.txt'''
  1 Der Aufruf des Stream Editors besitzt immer das Format:
1 Der Aufruf des Stream Editors besitzt immer das Format:
  2  
2  
  3 sed 'Kommando' Dateiname
3 sed 'Kommando' Dateiname
  4  
4  
  5 Dabei kann dem Kommando mitgeteilt werden, welche Zeilen der
5 Dabei kann dem Kommando mitgeteilt werden, welche Zeilen der
  6 Eingabedatei es bearbeiten soll.  
6 Eingabedatei es bearbeiten soll.  
* Als Adressierung kommen folgende
* Als Adressierung kommen folgende
  7 Mechanismen in Frage:
7 Mechanismen in Frage:
  8  
8  
  1 Der Aufruf des Stream Editors besitzt immer das Format:
1 Der Aufruf des Stream Editors besitzt immer das Format:
  10 Nummer Genau diese Zeile
10 Nummer Genau diese Zeile
  11 Start, Ende Alle Zeilen von "Start" bis "Ende"
11 Start, Ende Alle Zeilen von "Start" bis "Ende"
  12 $ Symbolisiert die letzte Zeile
12 $ Symbolisiert die letzte Zeile
  13 RegEx Zeilen, die den Regulären Ausdruck enthalten
13 RegEx Zeilen, die den Regulären Ausdruck enthalten
  14 1, RegEx Von Zeile 1 bis zur ersten Zeile, die RegEx enthält
14 1, RegEx Von Zeile 1 bis zur ersten Zeile, die RegEx enthält
  9 Keine Angabe Alle Zeilen
9 Keine Angabe Alle Zeilen


===== Erklärung =====
===== Erklärung =====

Aktuelle Version vom 14. Juni 2026, 00:50 Uhr

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.