我正在尝试编写一个 bash 脚本,该脚本可以通过并仅检查文件的前 N 行以匹配特定字符串。我可以编写一个简单的命令来检查整个文件,但是包含在大于 N 的行中的信息可能不准确。
这是我当前的实现
find . -exec egrep -H -m 1 -l "\<$month/$day/$year\>" {} \;
我正在考虑使用 head 函数首先修剪文件,但这似乎不起作用。有什么建议么?提前致谢
这将向您显示与第一N
行中的模式匹配的文件
find . -type f | xargs egrep -H -m 1 -n "\<$month/$day/$year\>" | awk -F : '$2 <= N { print $1; }'
egrep
搜索文件中的第一个匹配项并添加行号。awk
然后搜索行号小于或等于N
(在此处插入数字)的所有行并打印文件名。
或许像这样
find -type f | xargs head -N | egrep -H -m 1 -l "\<$month/$day/$year\>"
其中N
是行数。