企业面试题-find结合sed查找替换
题:把/oldboy目录及其子目录下所有以扩展名.sh结尾的文件中包含oldboy的字符串全部替换成oldgirl
解答:
建立测试数据:
[root@tan data]# mkdir /oldboy/test/ -p
[root@tan data]# cd /oldboy
[root@tan data]# echo 'oldboy' > test/del.sh
[root@tan data]# echo 'oldboy' > test.sh
[root@tan data]# echo 'oldboy' > t.sh
[root@tan data]# tree
sed 's#oldgirl#gongli#g' oldboy.sh s表示替换 g表示全局替换,即整个文件的内容都要替换 三个#:分隔符。 理论上#,可以用任意字符替代,但是我们一般都喜欢用#、\ 's#【oldgirl】#【gongli】#g':前面是要替换的内容,后面是替换后的内容 文件里的内容没有改,只是输出改了
sed -i 's#oldgirl#gongli#g' test.sh -i:修改文件的内容