Linux 14.981 Themen, 106.343 Beiträge

script oder oneline-command - mit sed directory ändern?

edico / 5 Antworten / Flachansicht Nickles

Hej script&bash_freaks,
in vielen (html-)Files sollen die directories(pfade) verändert werden - wie /home/user/bsp/bier[=pfad-alt] nach wein[=pfad-neu].
Grundsätzlich kann ich das über eine for-Schleife laufen lassen, und ich dachte mit sed das Problem zu lösen. Aber ein Slash ist nicht opportun im (oneline-)sed-command. Also das läuft hier nicht:
for i in *; do sed -e \'s/pfad-alt/wein/g\' neu-file; done. Eine ähnliche Lösung über ein perl-script macht dieselben Fehler. Wo ist die Lösung (kann natürlich auch ein script sein)?
Danke. edico

bei Antwort benachrichtigen
Klaus_T edico „Hej Klaus, nö- das is doch exakt dasselbe - bis auf die Option -e von sed. Das...“
Optionen

Du meinst, es geht um die /? Die musst du mit dem %-Zeichen maskieren, also so:

for i in *; do
sed 's%/usr/lib/xyz/wein%/bier%' $i > blah;
mv blah $i;
done

Dann wird /usr/lib/xyz/wein durch /bier ersetzt. Wolltest du so etwas?

Klaus

bei Antwort benachrichtigen