免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10138 | 回复: 5
打印 上一主题 下一主题

【已解决】[求助]如何用 grep递归列出指定目录下特定后缀名文件中包含关键字的行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-26 15:11 |只看该作者 |倒序浏览
本帖最后由 bnpnd 于 2010-11-26 15:50 编辑

如:
目录结构
      root-
         |
         |---------a
         |         |
         |         |---1.mk
         |         |---2.c
         |
         |---------b
                   |
                   |---3.mk
                   |---4.c

grep -R "OUT_DIR" . | more会全部列出,如何只列出*.mk中与OUT_DIR匹配的行

论坛徽章:
0
2 [报告]
发表于 2010-11-26 15:33 |只看该作者
  1. files=`ls  -R|grep "\.mk"`;for i in $files;do grep -H "OUT_DIR" $i;done
复制代码

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2010-11-26 15:36 |只看该作者
先ls -R,然后再grep

论坛徽章:
0
4 [报告]
发表于 2010-11-26 15:39 |只看该作者
or
  1. ls -R |grep "\.mk" |xargs -I '{}' grep -H "OUT_DIR" '{}'
复制代码

论坛徽章:
0
5 [报告]
发表于 2010-11-26 15:46 |只看该作者
回复 2# ghp268

谢谢
这个会出没有grep:**.mk没有该文件或目录的提示

仿照写了一个可以用的,
  1. files=`find $(pwd) | grep -E '*.\<mk\>`;for i in $files;do grep -H "OUT_DIR" $i;done
复制代码

论坛徽章:
0
6 [报告]
发表于 2011-08-31 10:29 |只看该作者
本帖最后由 yayu_myself 于 2011-08-31 10:30 编辑
  1. grep -R --include=".mk"  "OUT_DIR" .
复制代码
我又在找ls有没有递归列出特定文件的选项
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP