免费注册 查看新帖 |

Chinaunix

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

如何遍历当前目录下的所有子目录!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-27 10:42 |只看该作者 |倒序浏览
我想写个shell, 要求是搜索当前目录以及所有子目录下的*.c文件,搜索匹配
E_CBR_ED的行(C的语句,见下面的红部分),输出其出现的文件名,行数及语句本身。
比如,当前目录有两个.c文件,
A.c内容如下:
printf("\n";
E_CBR_ED(&A_CBL_resident,
A_CBL_VARI0002,
A_CBL_VARI0003);

printf("\n";
....
B.c内容如下:
printf("\n\n";
E_CBR_ED(&A_CBL_resident, A_CBL_VARI0005,
A_CBL_VARI0006);

printf("\n\n";
E_CBR_ED(&A_CBL_resident, A_CBL_VARI0007,
A_CBL_VARI000;


....

要求执行后的结果为:
A.c :
  2   E_CBR_ED(&A_CBL_resident,A_CBL_VARI0002,   A_CBL_VARI0003);
----------------------------------------------------------------------------------
B.c :
2   E_CBR_ED(&A_CBL_resident,A_CBL_VARI0005,   A_CBL_VARI0006);
4   E_CBR_ED(&A_CBL_resident,A_CBL_VARI0007,   A_CBL_VARI000;
----------------------------------------------------------------------------------

如果C语句分布在两行以上的代码中,应该合并为一行输出(绿色部分)。

谢谢各位!!!       

论坛徽章:
0
2 [报告]
发表于 2003-06-27 18:16 |只看该作者

如何遍历当前目录下的所有子目录!!!

find xx/ -name *.c|awk '{print "grep -nH include "$0}'|sh

论坛徽章:
0
3 [报告]
发表于 2003-06-27 19:05 |只看该作者

如何遍历当前目录下的所有子目录!!!

我的当前目录下有一个test.c文件
当执行find ./ -name *.c列出
./test.c
它并不列出当前目录下的子目录的.c文件
如果把当前目录下的test.c删除,此时目录下不再有.c文件
执行find ./ -name *.c时列出
会所有的子目录下的.c文件

为什么,会出现这种状况呢?谢谢!!!

论坛徽章:
0
4 [报告]
发表于 2003-06-28 00:50 |只看该作者

如何遍历当前目录下的所有子目录!!!

...

我想是因为第一种情况, 在运行 find 这个命令时,
就在命令行中把通配符 * 展开了,
所以就等价于: find ./ -name test.c

第二种情况,因为当前目录下没有,所以就到子目录下去找了。

曾经就有人跟我说 find PATH -name 不可靠,
他一直都喜欢自己用 grep 去找,比如这儿就是

find . | grep '.*\.c$'

论坛徽章:
0
5 [报告]
发表于 2003-06-28 02:06 |只看该作者

如何遍历当前目录下的所有子目录!!!

grep -R "*.c"

论坛徽章:
0
6 [报告]
发表于 2003-06-28 09:02 |只看该作者

如何遍历当前目录下的所有子目录!!!

原帖由 "红袖添香" 发表:
...

我想是因为第一种情况, 在运行 find 这个命令时,
就在命令行中把通配符 * 展开了,
所以就等价于: find ./ -name test.c

第二种情况,因为当前目录下没有,所以就到子目录下去找了。

曾经就有人跟?.........
   

果然好使! 红秀天香姐姐,还是你强!谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP