Zum Inhalt springen

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

Aus Foxwiki
Die Seite wurde neu angelegt: „== 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: {|class="wikitable" |- ! | »-n« ! | als Kommandozeilenoption besagt,…“
 
K Textersetzung - „ “ durch „ “
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
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...  
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 »s« '''
| | '''Da jedoch das Flag ''s'' '''
| | sämtliche Ausgaben »verschluckt«, muss »p« 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« '''
| | '''''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 »n«) übersprungen wird.
| | Sed fährt mit der folgenden Zeile (10) fort, die (wegen Flag ''n'') übersprungen wird.
|-
|-
|}
|}

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.