1. 首先是搜索到 myname  这个字符串,因为你不知道 myname  在哪个位置,有多少!。

  2. 并且,替换成 myName 字符串。

  3. 代码如下:

    [root@oldboy oldboy]# sed -i 's#myname#myName#g' `grep myname -rl /tmp/`

  4. 找到位置,并查看内容!

    [root@oldboy oldboy]# grep -rl 'myName' /tmp/* |xargs cat -n 

         1  1

         2  22

         3  3333

         4  4444

         5  55555

         6  666666

         7

         8  7777777

         9  oldboy

        10  myName



第二种方法

1.按 后缀为.txt的文件去查找

[root@oldboy oldboy]# find /tmp -type f -name '*.txt'

    /tmp/oldboy/123.txt

    /tmp/oldboy/txt.txt

    /tmp/oldboy/456.txt

2.查看 搜索的字符串所在路径!

[root@oldboy oldboy]# find /tmp -type f -name '*.txt' |xargs grep 'oldboy'

/tmp/oldboy/txt.txt:oldboy

3.替换

[root@oldboy oldboy]# find /tmp -type f -name '*.txt' |xargs sed -i 's#oldboy#oldsun#g'

4.再次查看 替换后的目录

[root@oldboy oldboy]# find /tmp -type f -name '*.txt' |xargs grep 'oldsun'

/tmp/oldboy/txt.txt:oldsun