我有以下目录:
/usr/smac/results/june/
在这个目录中我有很多目录。我只对那些以' ceg'开头的人感兴趣。 e.g。
ceg20160611234
gfd20160611493
ceg20160611543
ceg20160612193
flc20160612873
其中每一项都有以下内容:
RUN1 /日志文件 RUN2 /日志文件 RUN3 /日志文件 等
我知道如何使用'发现'命令在每个日志文件中搜索一个字符串,即
find . -maxdepth 2 -type f -name logfile -exec egrep -l 'passed' {} \;
然而,这将搜索所有文件,即
ceg20160611234/run1/logfile
ceg20160611234/run2/logfile
ceg20160611234/run3/logfile
[...]
gfd20160611493/run1/logfile
gfd20160611493/run2/logfile
[...]
ceg20160611543/run1/logfile
ceg20160611543/run2/logfile
[...]
ceg20160612193/run1/logfile
ceg20160612193/run2/logfile
[...]
flc20160612873/run1/logfile
flc20160612873/run2/logfile
[...]
我想尽量减少搜索,只搜索以' ceg'开头的目录。 e.g。
ceg20160611234/run1/logfile
ceg20160611234/run2/logfile
ceg20160611234/run3/logfile
[...]
ceg20160611543/run1/logfile
ceg20160611543/run2/logfile
[...]
ceg20160612193/run1/logfile
ceg20160612193/run2/logfile
[...]
答案 0 :(得分:1)
您可以将find
命令用作
find ceg* -maxdepth 2 -type f -name "logfile" -exec egrep -l 'passed' {} \;
将对以ceg*
开头的目录名执行上述操作,并对这些目录中名为egrep
的文件执行logfile
。
答案 1 :(得分:0)
find ./ceg* -maxdepth 2 -type f -name logfile -exec egrep -l'pass'{} \;
答案 2 :(得分:0)
这样做:
查找/ usr / smac / results / june / -name' ceg *'
基本上,-name的参数支持shell特殊字符,例如" *"和"?&#34 ;;但是,请确保引用它(''),这样它们就会被传递给find命令,而不是被shell扩展。