H
h.nietnagel
Grünschnabel
... sollte eigentlich ganz einfach sein. Dachte ich. Jetzt probiere ich schon seit mehr als einer Stunde an einem ganz simplen Problem herum:
ich habe viiieeeele Textdateien, die alle nach dem selben Muster aufgebaut sind.
Ich möchte in diesen mittels eines Shellskriptes und sed einige Zeilen löschen und in 2 Zeilen die Zahl "5" jeweils mit der Zahl "3" ersetzen.
So sieht - nach vielem Lesen im Netz - mein Skript jetzt aus:
Wenn ich das an einer Datei probiere, bekomme ich folgende Fehlermeldung:
Wenn ich versuche, das aufzudröseln, dann kommt zwar keine Fehlermeldung:
aber mir die Datei inklusive Zeilen 39 und 40, und exklusive Zeilen 48 und 49 angezeigt. Ich dachte aber, dass, wenn ich das Löschen der beiden Zeilen (wie funktioniert bei sed eigentlich die Angabe von NICHT aufeinanderfolgenden Zeilen, also z.B. Zeile 39 und Zeile 48? Ich finde überall nur Hinweise auf: Zeilen 2 bis 20 usw.) in einem "Rutsch angebe", dann würden auch beide Angaben berücksichtigt.
Kann mir jemand weiterhelfen? Was mache ich falsch, bzw. habe ich nicht richtig verstanden?
Vielen Dank im Voraus für Tipps!
Schöne Grüße,
Hannes
ich habe viiieeeele Textdateien, die alle nach dem selben Muster aufgebaut sind.
Ich möchte in diesen mittels eines Shellskriptes und sed einige Zeilen löschen und in 2 Zeilen die Zahl "5" jeweils mit der Zahl "3" ersetzen.
So sieht - nach vielem Lesen im Netz - mein Skript jetzt aus:
Code:
for i in *.prt; do
sed -n '39,40!p' -e -n '48,49!p' -e '35s/5/3/g' -e '44s/5/3/g' $i > ${i%.*}edit.prt
done
Code:
sed: -e: No such file or directory
sed: -n: No such file or directory
sed: 48,49!p: No such file or directory
sed: -e: No such file or directory
sed: 35s/5/3/g: No such file or directory
Wenn ich versuche, das aufzudröseln, dann kommt zwar keine Fehlermeldung:
Code:
for i in *.prt; do
sed -n '39,40!p' -e -n '48,49!p' $i > ${i%.*}edit.prt
done
Kann mir jemand weiterhelfen? Was mache ich falsch, bzw. habe ich nicht richtig verstanden?
Vielen Dank im Voraus für Tipps!
Schöne Grüße,
Hannes