当前位置: 技术问答>linux和unix
请教各位dx,如何将一个变量中的"/"变成"\/"
来源: 互联网 发布时间:2015-05-16
本文导语: 这样可以正确转换并显示 $ echo $aa a/b/c $ echo $aa | sed 's///\//g' a/b/c 下面 s=`echo $aa | sed 's///\//g'` sed: Function s///\//g cannot be parsed. 现在用反引号却不能对s进行赋值 将其中的单引号改为双引号后 $ s=`echo $aa | ...
这样可以正确转换并显示
$ echo $aa
a/b/c
$ echo $aa | sed 's///\//g'
a/b/c
下面
s=`echo $aa | sed 's///\//g'`
sed: Function s///\//g cannot be parsed.
现在用反引号却不能对s进行赋值
将其中的单引号改为双引号后
$ s=`echo $aa | sed "s///\//g"`
$ echo $s
a/b/c
等于没有进行转换
搞不定了,请大家帮帮忙
$ echo $aa
a/b/c
$ echo $aa | sed 's///\//g'
a/b/c
下面
s=`echo $aa | sed 's///\//g'`
sed: Function s///\//g cannot be parsed.
现在用反引号却不能对s进行赋值
将其中的单引号改为双引号后
$ s=`echo $aa | sed "s///\//g"`
$ echo $s
a/b/c
等于没有进行转换
搞不定了,请大家帮帮忙
|
被shell吃了。用双\来转义。
s=`echo $aa | sed 's/\//\\//g'`
或者利用s命令的分隔符特性,换个标点符合做分隔,比如";",这样可读性好,只要转义就可以了:
s=`echo $aa | sed 's;/;\/;g'`
s=`echo $aa | sed 's/\//\\//g'`
或者利用s命令的分隔符特性,换个标点符合做分隔,比如";",这样可读性好,只要转义就可以了:
s=`echo $aa | sed 's;/;\/;g'`
|
将其中的单引号改为双引号后
$ s=`echo $aa | sed "s///\//g"`
$ echo $s
a/b/c
等于没有进行转换
---------------------
你用echo $s检验是否转换成功是不行的,因为即使s=a/b/c
echo之后的结果也是a/b/c,因为是特殊字符。
而echo $aa | sed 's///\//g'输出的结果是由sed输出的,没有经过转义,所以正确。
$ s=`echo $aa | sed "s///\//g"`
$ echo $s
a/b/c
等于没有进行转换
---------------------
你用echo $s检验是否转换成功是不行的,因为即使s=a/b/c
echo之后的结果也是a/b/c,因为是特殊字符。
而echo $aa | sed 's///\//g'输出的结果是由sed输出的,没有经过转义,所以正确。