最后第 n 行的 grep 命令

Uda*_*ran 0 unix linux shell

我有一个 grep 命令返回超过 20 行。我需要显示从 grep 结果的最后一行开始的第 4 行,

假设我的文件有以下数据,

测试.txt

one  
two  
three  
four  
five  
six  
seven  
eight  
nine  
ten  
Run Code Online (Sandbox Code Playgroud)

任务是:

grep "nine" test.txt // i want seven as result 
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?

anu*_*ava 6

您可以使用-B选项 ingrep在搜索行之前获取任意数量的行,然后head -1从输出中获取第一行:

grep -B2 nine file | head -1

seven
Run Code Online (Sandbox Code Playgroud)