企业面试题-find结合sed查找替换

Posted tan-y-q

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了企业面试题-find结合sed查找替换相关的知识,希望对你有一定的参考价值。

题:把/oldboy目录及其子目录下所有以扩展名.sh结尾的文件中包含oldboy的字符串全部替换成oldgirl

解答:

建立测试数据:

[[email protected] data]# mkdir /oldboy/test/ -p

[[email protected] data]# cd /oldboy

[[email protected] data]# echo ‘oldboy‘ > test/del.sh

[[email protected] data]# echo ‘oldboy‘ > test.sh

[[email protected] data]# echo ‘oldboy‘ > t.sh

[[email protected] data]# tree

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

sed s#oldgirl#gongli#g oldboy.sh
s表示替换
g表示全局替换,即整个文件的内容都要替换
三个#:分隔符。
    理论上#,可以用任意字符替代,但是我们一般都喜欢用#、
s#【oldgirl】#【gongli】#g:前面是要替换的内容,后面是替换后的内容

文件里的内容没有改,只是输出改了

 

  技术图片

sed -i s#oldgirl#gongli#g test.sh
-i:修改文件的内容

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

  技术图片

    技术图片

    技术图片

    技术图片

    技术图片

    

以上是关于企业面试题-find结合sed查找替换的主要内容,如果未能解决你的问题,请参考以下文章

sh 使用sed和Find查找和替换

sh 使用find和sed查找并替换文件

如何使用 Find / Grep / Sed 在文件中查找和替换字符串

Linux 之 sed 与 find 命令结合使用

在目录和子目录中查找并替换为 sed

SED查找并替换第一个匹配项