Zum Inhalt springen

Sed/Zeilentausch: Unterschied zwischen den Versionen

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  ISMS/Recht » ISMS/Recht » Risikobericht » Adressierungsarten » Sed/Zeilentausch
K Textersetzung - „«“ durch „''“
K Textersetzung - „»“ durch „''“
 
Zeile 1: Zeile 1:
== Zeilentausch [h|g|G|x ] ==
== Zeilentausch [h|g|G|x ] ==
* Die aktuell bearbeitete Zeile hält der Sed in einem Zwischenspeicher und bearbeitet sie in diesem »Pattern Space''.  
* 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.  
* Hat der Editor seine Arbeit beendet, gibt er die Zeile aus und lädt die folgende Zeile der Eingabedatei in den Zwischenspeicher.  


Zeile 6: Zeile 6:
|-
|-
! align=center | h
! align=center | h
! | Mit dem Kommando »h'' kann der aktuelle Zwischenspeicher in einen Puffer gesichert werden (»holding buffer'').  
! | Mit dem Kommando ''h'' kann der aktuelle Zwischenspeicher in einen Puffer gesichert werden (''holding buffer'').  
|-
|-
| align=center | '''G'''
| align=center | '''G'''
| | Das Kommando »G'' fügt den Inhalt dieses Sicherungspuffers '''hinter '''der aktuell bearbeiteten Zeile ein.
| | Das Kommando ''G'' fügt den Inhalt dieses Sicherungspuffers '''hinter '''der aktuell bearbeiteten Zeile ein.
|-
|-
| align=center | '''g'''
| align=center | '''g'''
| | »g'' '''ersetzt '''die aktuelle Zeile durch den Inhalt des Sicherungspuffers.  
| | ''g'' '''ersetzt '''die aktuelle Zeile durch den Inhalt des Sicherungspuffers.  
|-
|-
| align=center | '''x'''
| align=center | '''x'''
| | Den Inhalt der beiden Puffer '''vertauscht '''das Kommando »x''.  
| | Den Inhalt der beiden Puffer '''vertauscht '''das Kommando ''x''.  
|-
|-
|}
|}
Zeile 32: Zeile 32:


===== Erklärung =====
===== 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 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 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.  
* Das letzte Kommando ''-e '4q''' beendet die Arbeit des Editors nach der 4.  
* Zeile.  
* Zeile.  


Zeile 57: Zeile 57:


===== Erklärung =====
===== Erklärung =====
* Enthält eine Zeile das Muster »Aufruf'', wird sie im Zwischenpuffer abgelegt.  
* 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.  
* 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.
* Der Inhalt des Zwischenpuffers wird hinter der letzten Zeile eingefügt.




[[Kategorie:Sed]]
[[Kategorie:Sed]]

Aktuelle Version vom 31. März 2025, 12:20 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.