路径"../syslog/tmp/"
替换为"/data/syslog/tmp” 首先要搞清楚,
转义符\的作用是消除有特殊含义
字符的特殊意义,使其还原为普通字符。sed -i 's/\.\.\/syslog\/tmp\//\/data\/syslog\/tmp/' file.ini点号.在正则表达式中有其特殊含义(表示任意一个字符),所以要表示点号本身,需要使用转义符。sed替换命令的格式一般为 s/.../.../ ,所以如果里面的内容也包含 / ,比如你这里的路径,为了区分,也需要转义。 最后说明一下,这样看起来很混乱,比较容易搞错。其实sed的替换命令格式不一定要是 s/.../.../,下面这样也都可以:s#...#...#s_..._..._ 即命令s后可以跟任意字符,只要跟替换内容不重复即可。这样,路径里的/就不再需要转义了。weblogic@linux-test2:/tmp>cat i
PATH_TMP=`echo $PATH | sed 's#\/#\\\/#g'`
echo $PATH_TMP
weblogic@linux-test2:/tmp>sh i
\/usr\/java\/jdk1.5.0_22\/bin:\/usr\/local\/bin:\/usr\/bin:\/usr\/X11R6\/bin:\/bin:\/usr\/games:\/opt\/gnome\/bin:\/opt\/kde3\/bin:\/usr\/lib\/mit\/bin:\/usr\/lib\/mit\/sbin
自己看吧希望对你有帮助!
#!/bin/bash
FILE=`ls 你文件所在目录`
for i in $FILE
do
sed -i "s/bb/cc/g" 你文件目录/$i
done
评论列表(0条)