Zum Inhalt springen

Sed/Nächste Zeile beabeiten: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „»“ durch „''“
K Textersetzung - „«“ durch „''“
 
Zeile 11: Zeile 11:
{|class="wikitable"  
{|class="wikitable"  
|-
|-
! | ''-
! | ''-n''
! | als Kommandozeilenoption besagt, dass die Ausgabe einzig die bearbeiteten Zeilen betreffen soll.  
! | als Kommandozeilenoption besagt, dass die Ausgabe einzig die bearbeiteten Zeilen betreffen soll.  
|-
|-
| | '''Da jedoch das Flag '''''
| | '''Da jedoch das Flag ''s'' '''
| | sämtliche Ausgaben ''verschluckt«, muss ''am Ende bemüht werden.  
| | sämtliche Ausgaben ''verschluckt'', muss ''p'' am Ende bemüht werden.  
|-
|-
| | '''''8,$« '''
| | '''''8,$'' '''
| | adressiert die Zeilen 8 bis zum Ende der Datei.  
| | adressiert die Zeilen 8 bis zum Ende der Datei.  
* Die erste Zeile, die also gefunden wurde, ist die 8.
* Die erste Zeile, die also gefunden wurde, ist die 8.
|-
|-
| | ''''''''
| | '''''n'' '''
| | als Substitutionskommando bewirkt, dass die nächste Zeile bearbeitet wird - Zeile 9.  
| | als Substitutionskommando bewirkt, dass die nächste Zeile bearbeitet wird - Zeile 9.  
* Diese 9.  
* Diese 9.  
* Zeile wird nun substituiert.
* Zeile wird nun substituiert.
|-
|-
| | '''''.\{1,\}« '''
| | '''''.\{1,\}'' '''
| | meint ''mindestens ein (\{1,\}) beliebiges (.) Zeichen.  
| | meint ''mindestens ein (\{1,\}) beliebiges (.) Zeichen.  
|-
|-
| |  
| |  
| | Da jede Zeile im Beispiel zumindest die Zeilenummer umfasst und das komplette Muster mit ''\(...\)« gespeichert wird, erscheint die gesamte Zeile mit vorangestelltem Stern (*\1) in der Ausgabe...  
| | Da jede Zeile im Beispiel zumindest die Zeilenummer umfasst und das komplette Muster mit ''\(...\)'' gespeichert wird, erscheint die gesamte Zeile mit vorangestelltem Stern (*\1) in der Ausgabe...  
|-
|-
| |  
| |  
| | Sed fährt mit der folgenden Zeile (10) fort, die (wegen Flag '') übersprungen wird.
| | Sed fährt mit der folgenden Zeile (10) fort, die (wegen Flag ''n'') übersprungen wird.
|-
|-
|}
|}

Aktuelle Version vom 31. März 2025, 12:15 Uhr

Nächste Zeile beabeiten[n]

Soll erst die dem Suchmuster folgende Zeile manipuliert werden, ist das n-Kommando der beste Kandidat:

sed -n '8,${n;s/\(.\{1,\}\)/*\1/p;}' test.txt
 * 9 Keine Angabe Alle Zeilen
 *11 $ Symbolisiert die letzte Zeile
 *13 RegEx Zeilen, die den Regulären Ausdruck enthalten

Die Kommandozeile ist schwer verdaulich...

  • aber der Reihe nach:
-n als Kommandozeilenoption besagt, dass die Ausgabe einzig die bearbeiteten Zeilen betreffen soll.
Da jedoch das Flag s sämtliche Ausgaben verschluckt, muss p am Ende bemüht werden.
8,$ adressiert die Zeilen 8 bis zum Ende der Datei.
  • Die erste Zeile, die also gefunden wurde, ist die 8.
n als Substitutionskommando bewirkt, dass die nächste Zeile bearbeitet wird - Zeile 9.
  • Diese 9.
  • Zeile wird nun substituiert.
.\{1,\} meint mindestens ein (\{1,\}) beliebiges (.) Zeichen.
Da jede Zeile im Beispiel zumindest die Zeilenummer umfasst und das komplette Muster mit \(...\) gespeichert wird, erscheint die gesamte Zeile mit vorangestelltem Stern (*\1) in der Ausgabe...
Sed fährt mit der folgenden Zeile (10) fort, die (wegen Flag n) übersprungen wird.