首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

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

2012-09-06 
sed 脚本求助:变量中含有转义字符处理在使用sed脚本替换的时候,碰到一个问题:如cat /opt/sysinfo.ini | se

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替换可用很多符合作分割符,除了/,其他# , ;什么的都行,这样就不混淆了

热点排行