【发布时间】:2016-12-30 20:23:08
【问题描述】:
我有一个包含超过 100,000 个文件的目录。我想知道字符串"str1" 是否作为这些文件内容的一部分存在。
命令:
grep -l 'str1' * 读取所有文件所需的时间太长。
如果找到匹配项,我如何要求grep 停止读取任何进一步的文件?有单行吗?
注意:我已经尝试过grep -l 'str1' * | head,但该命令所花费的时间与上一个命令一样多。
【问题讨论】:
-
命令在文件少的目录下有效吗?
-
也许,已经在这里回答了:stackoverflow.com/questions/14093452/…
-
head -1可以解决问题 -
如果你有很多文件,也许是 glob 非常慢。
find path/to/directory/ -type f -exec grep -l 'str1' /dev/null {} +怎么样? -
在搜索固定字符串时,请注意使用
fgrep代替grep。