我正在尝试编写一个 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
(在此处插入数字)的所有行并打印文件名。
关于linux - 检查 bash 文件的前 N 行是否有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14668649/