Sed/Nächste Zeile beabeiten: Unterschied zwischen den Versionen
Erscheinungsbild
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 „''“ |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
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 | | | sämtliche Ausgaben ''verschluckt'', muss ''p'' am Ende bemüht werden. | ||
|- | |- | ||
| | ''' | | | '''''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,\}'' ''' | ||
| | meint | | | meint ''mindestens ein (\{1,\}) beliebiges (.) Zeichen. | ||
|- | |- | ||
| | | | | | ||
| | Da jede Zeile im Beispiel zumindest die Zeilenummer umfasst und das komplette Muster mit | | | 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 | | | 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.
|
n | als Substitutionskommando bewirkt, dass die nächste Zeile bearbeitet wird - Zeile 9.
|
.\{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. |