您的位置:首页 > 运维架构 > Linux

Linux技巧总结之--多文件查找替换

2011-12-07 15:52 246 查看
查找

// 使用 shell 在多个文件中查找
find . -type f | xargs grep flash
说明:
找出前目录及其子目录下的文件中含有 flash 的文件
//
重点记录下 xargs 命令:
xargs 在标准输入上取得参数列表、一行一个,再将他们以适当的大小组起来(由主机的 ARG_MAX 值决定)传给另一个命令,此命令在作为 xargs 的参数.
ARG_MAX 值查看方法:
getconf ARG_MAX
//
//
在多个文件中查找使用命令替换也可以完成
grep flash $( find . -type f)
说明:
$() 是命令替换,括号内是 shell 命令;shell 执行括号内的命令并将整个 $(...) 替换为 命令的输出 命令替换的形式有两种,一种是 $(),另一种是使用两个反引号 `find . -type f`

替换

// 多个文件中替换 - sed
为了保证不该替换的不被替换,先在文件中查找一下哪些会被替换
find -type f ! -path '*.svn*' | xargs sed -n '/Ookong inc/p'
说明:
1, find 首先过滤掉 .svn 目录及其子目录
2, xargs 传递参数给 sed 命令
3, sed 执行查找, 只打印符合要求的行
//
// 替换
find -type f ! -path '*.svn*' | xargs sed -i 's/Ookong inc/Ookong Ltd. Co./g'
说明:
1, sed 的 i 选项直接在文件中替换,而不是把替换结果打印出来
2, g 对每行中所有匹配执行替换
//
//
另外:一个 perl 多文件查找的程序: ack
-- 显示所在的行号及所在的文件

VIM查找替换(详见/article/5142739.html

其他替换方法:

一种是Mahuinan法,一种是Sumly法,一种是30T法分别如下:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: