neue sed-aufgabe

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Oesi
Beiträge: 81
Registriert: 15.06.2004 13:57:04
Wohnort: Linz

neue sed-aufgabe

Beitrag von Oesi » 14.09.2005 12:02:20

Nachdem ich mich eine Stunde lang ergebnislos versucht habe, in den sed-kosmos einzudenken, bitte ich um eure Hilfe:
Folgende Manipulation soll mit 80 Dateien in einem Ordner passieren:
*Die erste Zeile soll gelöscht werden
*Die zweite (jetzt erste) soll unter die dritte (jetzt zweite) geschoben werden.
- oder anders gesagt:
*Die dritte Zeile soll anstelle der ersten gesetzt werden, und an ihrem alten Platz gelöscht werden

Code: Alles auswählen

   vorher: nachher:
1    A        C
2    B        B
3    C        D
4    D        E
5    E .... 
Ist das verständlich? Gibt es dafür eine Lösung? Gibt es eigentich ein intuitives Frontend zu sed oder awk?

Vielen Dank im Voraus,
ösi
vouloir etre de son temps, c'est deja etre depasse
(E. Ionesco)

Benutzeravatar
SubOptimal
Beiträge: 1709
Registriert: 10.01.2005 23:25:46
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: bei Frankfurt

Beitrag von SubOptimal » 14.09.2005 14:23:13

Hi ösi,

zum Test ob es das tut was Du willst

Code: Alles auswählen

sed -ne '3G;x;1,3d;p' filename
wenn das passt kannst Du mit

Code: Alles auswählen

sed -i.bak -ne '3G;x;1,3d;p' filename
die Dateien bearbeiten und erhältst als filename.bak ein Backup der Originaldatei.

Hier noch ein paar Links zum Thema:
ausführliche Beschreibung, inkl. einiger weiterführender Links
sed FAQ, mit gut beschriebenen Beispielen

SubOptimal

Benutzeravatar
Oesi
Beiträge: 81
Registriert: 15.06.2004 13:57:04
Wohnort: Linz

Beitrag von Oesi » 14.09.2005 16:17:31

Super, genau was ich wollte! Ganz herzlichen dank, auch für die weiterführenden Links, werde ich mir zu Gemüte führen... zumal wahrscheinlich noch andere ähnliche Aufgaben auf mich zukommen werden. Alles Liebe Ösi
vouloir etre de son temps, c'est deja etre depasse
(E. Ionesco)

Antworten