首先是搜索到 myname 这个字符串,因为你不知道 myname 在哪个位置,有多少!。
并且,替换成 myName 字符串。
代码如下:
[root@oldboy oldboy]# sed -i 's#myname#myName#g' `grep myname -rl /tmp/`
找到位置,并查看内容!
[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