Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1327117
  • 博文数量: 268
  • 博客积分: 10698
  • 博客等级: 上将
  • 技术积分: 2867
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-14 22:21
文章分类

全部博文(268)

文章存档

2012年(19)

2011年(13)

2010年(29)

2009年(26)

2008年(99)

2007年(82)

我的朋友

分类:

2010-08-20 02:41:55

一个目录里面一层层的子目录很多,文件也很多,想从中搜索到一定模式的文件名以及它们所处的子目录可以借助于 ls -R 与 sed 来完成。比如,有一个源码目录,我想从中搜索到所有以大写的S为扩展名的文件(即汇编源码文件的一种),以及他们所处的子目录,由于只是一小部分子目录中有.S文件,所以需要过滤才看得清楚。

第一步:
# ls -R    列出当前目录下所有的子目录名与文件名
第二步:
# sed '/\.S$\|^\.\//!d'   过滤出.S文件及所有的以./为首的子目录名
第三步
# sed -n '/\.S$/{x;p;g;p;d};h'   在前面过滤的基础上,再把.S文件名与它们的上一行即它们所在的目录名输出

三步连起来就是这样:
# ls -R | sed '/\.S$\|^\.\//!d' | sed -n '/\.S$/{x;p;g;p;d};h'
阅读(2776) | 评论(0) | 转发(0) |
0

上一篇:方正字体

下一篇:GNU栈

给主人留下些什么吧!~~