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 "源字串"`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值