一场比赛的前 10 行

一场比赛的前 10 行

如何获取比赛的前 10 行?我认为使用 grep 和选项 B 然后将其通过管道输入 head 可以,但是有没有更简单的方法来做到这一点?

例如,如果我有一个像这样的文本文件

a
b
c
d
e
f
g
h
i
j
k
l
m

如果我选择模式为“l”,我将得到前 10 行,即“b”。

答案1

grep/方法head工作得很好。怀疑是否有更简单的方法。如果有多个匹配项,则仅显示第一个匹配项。

$ grep -B 10 l x|head -1
b
$

GNUawk解决方案,使用循环缓冲区。如果有多个匹配项,则显示每个匹配项。

$ awk '/^l$/{print a[NR%10]};{a[NR%10]=$0}' x
b
$

相关内容