==============正斜杠(/)的作用:
1、作为路径的分隔符,采用正斜杠(/),比如"/home/hutaow"
================反斜杠(\)的作用:
1、在正则表达式中,采用表达 \(\);\{m,n\};\?;\+
2、一个命令可以用(\)分成多行
3、作为转义(\)使用
后续补充。。。。。
在字符替换中,可能会遇见引号,“/”等的替换,这时应该注意,sed的命令原型是:sed -i "s/oldstring/goalstring/g" file如果一个路径是data/path/abc,现在要将此路径换成一个字符串cde但是这时跟在s后边的其实是分隔符,用以将oldstring替换成cde他可以使用任意字符,这时如果字符串中有“/”,就会发生混乱,在这个时候可以用#当做分隔符,就变成sed -i "s#abc#cde#g" file这时如果abc中包含“/”就可以随便替换了;引号的替换:需要将引号转义,使用反斜杠“\”,比如替换" ' 'div' ' ",如果需要将它替换成‘div' 可以使用sed -i s#\"\'\'#\'#g就能替换了。路径"../syslog/tmp/"替换为"/data/syslog/tmp” 首先要搞清楚,转义符\的作用是消除有特殊含义字符的特殊意义,使其还原为普通字符。sed -i 's/\.\.\/syslog\/tmp\//\/data\/syslog\/tmp/' file.ini点号.在正则表达式中有其特殊含义(表示任意一个字符),所以要表示点号本身,需要使用转义符。sed替换命令的格式一般为 s/.../.../ ,所以如果里面的内容也包含 / ,比如你这里的路径,为了区分,也需要转义。 最后说明一下,这样看起来很混乱,比较容易搞错。其实sed的替换命令格式不一定要是 s/.../.../,下面这样也都可以:s#...#...#s_..._..._ 即命令s后可以跟任意字符,只要跟替换内容不重复即可。这样,路径里的/就不再需要转义了。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)