我怎样才能使击中一个大文件第一模式匹配后的grep停止?(How can I make grep s

2019-10-19 14:43发布

我有一大批这样的行:

a|b|c
e|f|2
h|i|j

我想找到的第一行,只有在第三列号(这将是第二次在一个例子)。 我怎么可以grep,没有所有的数据和管它卸入头?

Answer 1:

您可以使用-m1在grep的选项:

grep -m1 "[0-9]$" file

正如每man grep

 -m num, --max-count=num
         Stop reading the file after num matches.

或者更准确的做用awk吧:

awk -F'|' '$3 ~ /^[0-9]+$/{print; exit}' file
e|f|2


Answer 2:

POSIX的解决方案是使用sed和退出后的首场比赛:

sed -n '/|[0-9]*$/{p;q;}' file    # print and quit


文章来源: How can I make grep stop after hitting a first pattern match in a large file?
标签: shell grep