检查前N行bash文件中的字符串

时间:2013-02-03 01:42:41

标签: linux bash shell unix scripting

我正在尝试编写一个bash脚本,该脚本可以通过并仅检查文件的前N行以匹配特定字符串。我能够编写一个简单的命令来检查整个文件,但是大于N的行中包含的信息可能不准确。

这是我目前的实施

find . -exec egrep -H -m 1 -l "\<$month/$day/$year\>" {} \;

我当时正考虑使用head函数来修剪文件,但这似乎不起作用。有什么建议?提前致谢

1 个答案:

答案 0 :(得分:1)

这将显示与第一个N行中的模式匹配的文件

find . -type f | xargs egrep -H -m 1 -n "\<$month/$day/$year\>" | awk -F : '$2 <= N { print $1; }'

egrep搜索文件中的第一个匹配项并添加行号。 awk然后搜索行号小于或等于N的所有行(此处插入数字)并打印文件名。