在文本文件中查找行号 - 无需打开文件

Ele*_*eco 4 linux

在一个非常大的文件中,我需要找到一个字符串的位置(行号),然后在该字符串的上方和下方提取2行.

要立即执行此操作 - 我启动vi,找到字符串,记下它的行号,退出vi,然后使用sed提取该字符串周围的行.

有没有办法简化这个过程...理想情况下,根本不需要运行vi.

Den*_*ret 9

你可以做

grep -C 2 yourSearch yourFile 
Run Code Online (Sandbox Code Playgroud)

要将其发送到文件中,请执行

grep -C 2 yourSearch yourFile > result.txt
Run Code Online (Sandbox Code Playgroud)

  • 这与`-n`是最简洁的. (3认同)

mba*_*emy 8

也许使用像这样的grep:

grep -n -2 your_searched_for_string  your_large_text_file
Run Code Online (Sandbox Code Playgroud)

会给你几乎你所期望的

-n:告诉grep打印行号

-2:打印2行(当然是想要的字符串)