Marcus Wagner
Ich möchte mit Hilfe eines Bash-Scriptes alle in einer Datei vorkommenden "\" durch "/" ersetzen. Ich habe es bereits mit folgenden Varianten probiert, bin jedoch immer gescheitert:
cat "datei" | sed s/"\"/"/"/ cat "datei" | sed y/"\"/"/"/
Wie lautet da die richtige Syntax?
Das s-Kommando von sed ist schon ok, aber es gibt noch zwei Probleme: Dein Quoting schützt bisher nur Sonderzeichen (hier insbesondere den '\') vor der Interpretation durch die bash, aber sowohl '/' als auch '\' haben auch für sed eine Sonderbedeutung. Außerdem sollen ggf. auch mehrere '\' pro Zeile ersetzt werden, und dafür ist beim s-Kommando noch die Option 'g' nötig, die hinten angehängt wird. Das Ergebnis kann z.B. so aussehen: sed 's/\\/\//g' "datei" (Weitere Varianten sind denkbar...) Alles, was zwischen den Hochkommas (') steht, wird von der bash *nicht* interpretiert und unverändert an sed übergeben. Ein '\' nimmt innerhalb von sed dem folgenden Zeichen seine Sonderbedeutung, also sieht sed schließlich, daß das Kommando "s" auf die Argumente "\" und "/" mit der Option "g" angewendet werden soll. Eilert -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik eilert@informatik.uni-bremen.de - eilert@tzi.org - eilert@linuxfreak.com http://www.informatik.uni-bremen.de/~eilert/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com