首先要搞清楚,转义符\的作用是消除有特殊含义字符的特殊意义,使其还原为普通字符。
sed
-i
's/\.\.\/syslog\/tmp\//\/data\/syslog\/tmp/'
file.ini
点号.在正则表达式中有其特殊含义(表示任意一个字符),所以要表示点号本身,需要使用转义符。
sed替换命令的格式一般为
s/.../.../
,所以如果里面的内容也包含
/
,比如你这里的路径,为了区分,也需要转义。
最后说明一下,这样看起来很混乱,比较容易搞错。
其实sed的替换命令格式不一定要是
s/.../.../,下面这样也都可以:
s#...#...#
s_..._..._
即命令s后可以跟任意字符,只要跟替换内容不重复即可。这样,路径里的/就不再需要转义了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)