linux查找当前目录下包含某一单词的所有文件并进行替换
linux查找当前目录下包含某一单词的所有文件并进行替换
·
背景:
今天在编译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 "源字串"`
更多推荐
已为社区贡献1条内容
所有评论(0)