Zum Inhalt springen

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

Aus Foxwiki
K Textersetzung - „«“ durch „''“
K Textersetzung - „ “ durch „ “
 
Zeile 2: Zeile 2:
Soll erst die dem Suchmuster folgende Zeile manipuliert werden, ist das n-Kommando der beste Kandidat:
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'''
  '''sed -n '8,${n;s/\(.\{1,\}\)/*\1/p;}' test.txt'''
  * 9 Keine Angabe Alle Zeilen
* 9 Keine Angabe Alle Zeilen
  *11 $ Symbolisiert die letzte Zeile
*11 $ Symbolisiert die letzte Zeile
  *13 RegEx Zeilen, die den Regulären Ausdruck enthalten
*13 RegEx Zeilen, die den Regulären Ausdruck enthalten


Die Kommandozeile ist schwer verdaulich...  
Die Kommandozeile ist schwer verdaulich...  

Aktuelle Version vom 14. Juni 2026, 00:45 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.