如何获取比赛的前 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
$