一个Linux下非常有用的Shell
一个Linux下非常有用的Shell:
批量地查找并替换一个目录下所有文件中的字符串。
格式如下:
sed -i "s/oldstring/newstring/g " `grep oldstring -rl yourdir`
例如:
sed -i "s/cc.marine/your boyfriend/g " `grep "cc.marine " -rl /home`
可是查了好多相关的文档还是没有搞明白其工作原理,其中的-i参数就是不知道是什么意思,而且后面的正则表达是通过pipe还是别的什么方式和前面的sed联系起来的呢?两个 "` "符号是什么意思呢?请大侠赐教一下!
------解决方案--------------------`grep oldstring -rl yourdir`,把运行的结果作为sed的参数
sed的-i参数表示:edit files in place
------解决方案--------------------``就是执行其中的命令 看下shell编程 里面有介绍
------解决方案--------------------在shell编程中``符号可以用$( )替代。
------解决方案--------------------又见SED