find 及 xargs组合求助

机器上面跑的应用比较多,却不得不修改 ip。 应用的主要配置在文件配置文件中,尝试用以下命令找出哪些文件包含 ip信息,发现还不够完美,求高手帮忙完善。find /home  -type f |grep -v tmp|xargs grep  "168.33"问题:1、如果文件名或目录名中包含空格,无...显示全部
机器上面跑的应用比较多,却不得不修改 ip。 应用的主要配置在文件配置文件中,

尝试用以下命令找出哪些文件包含 ip信息,发现还不够完美,求高手帮忙完善。

find /home  -type f |grep -v tmp|xargs grep  "168.33"

问题:
1、如果文件名或目录名中包含空格,无法深入检查到
2、-type f   Plain file  , 但实际连 tar/jar 这样的文件也找出来了
3、grep 地址,  包含 168133 之类的内容也被当有效结果显示收起
参与9

查看其它 7 个回答phanx的回答

phanxphanx系统工程师银行
1. grep 支持直接对文件进行查找
2. grep 有 -r 选项会循环搜寻目录


grep 常见多余的用法1  cat a.txt | grep abc

正常用法  grep abc a.txt

grep 常见多余的用法2  find ./ -exec  grep abc {} \;

正常用法 grep -r abc ./

所以,楼主的问题用

grep -r "168\.33" /home


就能实现。  另外 IP里面的 . 要用 \ 来转义
银行 · 2014-05-23
浏览1520

回答者

phanx
系统工程师银行
擅长领域: 服务器数据库AIX

phanx 最近回答过的问题

回答状态

  • 发布时间:2014-05-23
  • 关注会员:1 人
  • 回答浏览:1520
  • X社区推广