sed -> Zeile 8 vor Zeile 5 einfügen

M

Markus371

Grünschnabel
Hallo zusammen,

wie kann ich die Zeile 8 vor die Zeile 5 einfügen?
Vielen Dank im Voraus.

Gruß
Markus
 
Witzig ... verschieben oder kopieren? Verschieben könnte etwa so funktionieren:
Code:
sed -e '5{h;d}' -e '6,7{H;d}' -e '8G'

:) Grüsse, A.
 
Hallo floyd62,

Super, läuft. Vielen Dank.
Kann man das ganze auch umdrehen? z.B. Zeile 2 vor Zeile 14

Gruß
Markus
 
Du musst dir eigentlich nur bewusst machen, dass sed nicht rückwärts gehen kann, sondern den Input einfach zeilenweise abarbeitet. Da heisst, du solltest erst einmal deine Aufgabenstellung entsprechend umformulieren.

"Zeile 2 vor Zeile 14 zu verschieben" heisst also erst einmal, Zeile 2 in den Hold Space zu kopieren und zu löschen ('2{h;d}'), und diesen Hold Space dann an Zeile 13 anzuhängen ('13G').

... sollte also so funktionieren:
Code:
seq 1 20 | sed -e '2{h;d}' -e '13G'

A.
 
Hallo floyd62,

Vielen Dank. Genau so habe ich es mir vorgestellt.

Gruß
Markus
 

Ähnliche Themen

Perl Zeilen Auslesen(logdatei) und auswerten

sed - Bitte um Unterstützung

Zeilen auslesen und anderer Stelle wieder einfügen

Hilfe für ein shell script

SED: eine Zeile mit einem Grep-Output ersetzen

Zurück
Oben