背景:

今天在编译larbin的时候g++编译器提示没能找到<iostream.h>,要使编译成功需要改为<iostream>using namespace std;我在larbin的目录下一搜索,发现好多文件都包含<iostream.h>,完了,一个个改会出人命滴,幸好有linux提供了很多的操作文件、文本的命令。


任务:

(1)查找包含<iostream.h>字串的所有文件

  用find+xargs+grep命令:

find . -type f | xargs grep -ri "<iostream.h>"

(2)替换

  用sed命令

sed -i "s/<iostream.h>/<iostream>\nusing namespace std;/g" 【输入文件,这里用任务(1)找到的文件作为输入参数】

合并起来,实现“查找当前目录下包含某一单词的所有文件并进行替换”的功能:

    sed -i "s/<iostream.h>/<iostream>\nusing namespace std;/g"  `find . -type f | xargs grep -ri "<iostream.h>"`


总结:

查找当前目录下包含源字串的所有文件并进用目标字串替换

    sed -i "s/源字串/目标字串/g"  `find . -type f | xargs grep -ri "源字串"`

Logo

更多推荐