批量替换字符串
背景
有时候会遇到需要对于一类字符串进行替换的情景,如果在同一个类下面,各个IDE一般都有这方面的支持:
但是有的时候需要对整个项目下做类似的操作,
此时发现不一定有针对项目的批量替换,总不至于一个个类替换下去吧。
这时候linux的指令可以帮忙实现这个功能。
建立测试文件夹&文件
ps:如果你使用的是windows系统也不怕,做开发肯定安装了git客户端吧,启动Git Bash同样可以使用这些指令。
文件&文件路径
文件内容:
操作
首先是查找
grep -irn 'lebron' testModify/
参数解释:
i:不区分大小写
r:递归路径下的文件
n:显示行号
结果:
可以看到
结果中不仅返回了包含的行中整句的内容,还展示了所在文件的路径、名称、行数。
结果输出
同时可以将搜索结果放到文本中,方便后续处理,非常方便
grep -irn 'lebron' testModify/ > searchRes.txt
文件内容:
接下来是替换
sed -i "s/Lebronn/lebron/g" `grep -irn 'lebronn' -rl testModify/`
参数解释
(sed)i:修改文件
r:指明grep查找的是文件夹下的内容而不是文件,不加的话会报错提示没有此文件
l:列出文件内容符合指定的样式的文件名称
整句的含义是将testModify文件夹下的文件中包含‘lebron’的内容找出来并将‘lebron’替换为‘lebronn’