linux - grep - 限制读取的文件数

标签 linux bash grep

我有一个包含超过 100,000 个文件的目录。我想知道字符串 "str1" 是否作为这些文件内容的一部分存在。

命令: grep -l 'str1' * 读取所有文件所花费的时间太长。

如果找到匹配项,我如何让 grep 停止读取任何进一步的文件?任何单线?

注意:我试过 grep -l 'str1' * | head 但该命令花费的时间与前一个命令一样多。

最佳答案

在命令参数中命名 100,000 个文件名会导致问题。它可能超过了 shell 命令行的大小。

但是如果您使用递归选项并仅使用文件所在目录的名称(即 . 如果您想在当前目录):

grep -l -r 'str1' . | head -1

关于linux - grep - 限制读取的文件数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41402247/

相关文章:

javascript - 使用 Javascript 中的参数执行 bash 脚本

bash - xrandr 大小 1920x1080 在可用模式 ubuntu 中找不到

bash - 涉及登录时如何编写bash脚本

linux - sed 删除 # 和 # 之间的字符并添加 :'s in bash script?

linux - grep 和 ls : 'l' flag not supported for ls when used with xargs?

c - 为什么输入字符串不起作用?

c - 为什么进程之间没有切换

bash - 将 curl 响应的特定部分保存到变量

数据库? Plesk Ec2 aws 错误 100% full xvda1

mysql - 使用 bash 从 csv 文件导入日期到 mysql