Answers:
{ grep -m1 match; grep -c ''; } <file
这将与GNU grep和一个有lseek()能力的文件一起工作。第一grep行将在1 -m跳停止,第二行将-c在输入中剩余的每一行进行测距。
没有GNU grep:
{ sed '/match/q'; grep -c ''; } <file
当然,grep除了您可以使用其任何/所有其他其他选项外,完全不必停止一场比赛。
grep -m1 match >/dev/null。第二个问题是GNU- sed它不会按规范重置其输入偏移。您必须使用-u带有GNU的软件-并非总是如此。我可以更清楚一些,但是我的假设是GNU grep和GNU sed将成对出现。我认为,也grep -qm1可以使用这种方法来缩短/dev/null重定向的速度-但是GNU grep确实有一些奇怪的事情,-q而且我不记得这两者是如何一起工作的。
wc -l比便宜一点grep -c ''。
这是一种方法。
$ cat foo
aaa
bbb
ccc
ddd
eee
fff
$ awk '/^ddd/{a=FNR}END{print FNR-a}' foo
2
$