Danke Bernhard und Matthias, On 13-Jul-2001 Bernhard Walle wrote:
Mit "sed s/\\//g datei.alt > datei.neu dachte ich, ganz einfach die \ loeschen zu koennen. [...] Die Shell ersetzt das \\ durch \. \ muss aber maskiert werden -
Das war mir ja auch klar. Deshalb die \\. Mit dem ersten \ dachte ich, waere der zu ersetzende \ masiert. Da ich dachte, dass sed auch noch mal eine eigene Maskierung braucht, hatte ich es sogar mit drei \\\ versucht. Warum habe ich die Reihe nicht einfach fortgesetzt ;-)
entweder "doppelt", also
sed s/\\\\//g datei.alt > datei.neu
oder das Ersetzen der Shell verhindern mit Hochkommata:
sed 's/\\//g' datei.alt > datei.neu
Mit den Hochkommata habe ich es auch versucht, allerdings hier mit nur einem \, weil der \ ja schon vor der Bash versteckt war, wie ich dachte
Wenn die Zeilen mit \ enden, so wäre aber
sed 's/\\$//g' datei.alt > datei.neu
sicherer, da nur \ am Ende der Zeile erfasst werden.
Das ist _der_ Tip, denn ich habe hier auch Dateien, in denen mittendrin
auch ein \ vorkommen kann, allerdings durch \ maskiert. Ich hatte mir
deshalb schon ueberlegt, mit sed diese \\ durch && zu ersetzen, dann
die Zeilenenden-\ zu loeschen und abschliessend die && wieder durch \\
zu ersetzen.
Aber vielleicht haette ich auch noch einen umstaendlicheren Weg
gefunden ;-)
Vielen Dank,
Heinz.
--
E-Mail: Heinz W. Pahlke