如何计算具有特定条目的文件数?

时间:2014-01-24 16:45:47

标签: linux bash unix

在我的剧本中,我使用以下内容......

edi824Files=`find $EDI_824_FILE_DIR -name "*$ediFileDate*.edi" -a "(" -mtime -1 ")"`

这里$ ediFileDate应该是当前日期,而$ EDI_824_FILE_DIR的值应该是DIR /。例如:DIR / 2014-01-24

上面的一个工作正常,但它只是拉出所有带有.edi扩展名的文件。但我想只获得具有特定条目的文件。例如:包含值" 824 "的文件。我怎么能做到这一点?

2 个答案:

答案 0 :(得分:2)

试试这个:

find $EDI_824_FILE_DIR -name "*$ediFileDate*.edi" -a "(" -mtime -1 ")" -exec grep -l "824" {} \;

答案 1 :(得分:1)

通过 xargs grep 管道查找

find ... | xargs grep '824'

这将列出包含“824”的所有行,以及文件名和行号。如果您只想要文件名,那么:

find ... | xargs grep -l '824'

xargs stdin 读取。对于读取的每一行,它执行命令,将该行作为命令的最后一个参数传递。