Forward Slash durch Backslash ersetzen (ksh)

24/03/2008 - 17:37 von prof.lehmann | Report spam
hi all,
ich werde fast verrückt. Ich will ja nur in einem String den Slash '/'
durch einen Backslash '\' ersetzen.

$ A="c:/abc/d"
$ echo "$A"
c:/abc/d
$ echo "$A" | tr '//' '\\'
c:\abc\d <-- GENAU SO HÄTT ICH'S GERNE
$ B=`echo "$A" | tr '//' '\\'`
$ echo $B
c:

Bevor ich durchdrehe: any help?

Gruss
Peter
 

Lesen sie die antworten

#1 Paul Hink
24/03/2008 - 17:50 | Warnen spam
prof.lehmann wrote:

ich werde fast verrückt. Ich will ja nur in einem String den Slash
'/' durch einen Backslash '\' ersetzen.

$ A="c:/abc/d"
$ echo "$A"
c:/abc/d
$ echo "$A" | tr '//' '\\'
c:\abc\d <-- GENAU SO HÄTT ICH'S GERNE
$ B=`echo "$A" | tr '//' '\\'`
$ echo $B
c:

Bevor ich durchdrehe: any help?



Höchstwahrscheinlich werden die Backslashes in $B von echo
fàlschlicherweise interpretiert. Was ergibt folgendes?

$ echo -E "$B"
oder:
$ printf "%s" "$B"

Was anderes: Warum übergibst du tr jeweils zwei Slashes und
Backslashes? `tr '/' '\'` sollte auch das tun, was du möchtest.

Ähnliche fragen