sed 脚本变量中含有转义字符处理

sed 脚本求助:变量中含有转义字符处理
在使用sed脚本替换的时候,碰到一个问题:
如cat /opt/sysinfo.ini | sed "/pppoe_username/ s/=.*/=$1/g" > /tmp/static_temp
是想将文件中的pppoe_username=.* 替换成pppoe_username=$1 ,$1是替换的值
若此时$1中含有/符号时,如admi/n 时,此时命令的格式就会变成
 sed "/pppoe_username/ s/=.*/=admi/n/g 就会报错误

关于这个问题,是否比较好的方法规避?

在线求助呼


示例:

C# code

[nicenight@CSDN ~]$ a="ab/c"
[nicenight@CSDN ~]$ echo "pppoe_username=aaa" | sed "/pppoe_username/ s/=.*/=$a/g"
sed: -e expression #1, char 28: unknown option to `s'
[nicenight@CSDN ~]$ echo "pppoe_username=aaa" | sed "/pppoe_username/ s#=.*#=$a#g"
pppoe_username=ab/c


楼上的方法,或者转义掉.

"\\/"或者'\/'


sed替换可用很多符合作分割符,除了/,其他# , ;什么的都行,这样就不混淆了

sed 脚本变量中含有转义字符处理

相关文章:

你感兴趣的文章:

标签云: