在一个非常大的文件中,我需要找到一个字符串的位置(行号),然后在该字符串的上方和下方提取2行.
要立即执行此操作 - 我启动vi,找到字符串,记下它的行号,退出vi,然后使用sed提取该字符串周围的行.
有没有办法简化这个过程...理想情况下,根本不需要运行vi.
你可以做
grep -C 2 yourSearch yourFile
Run Code Online (Sandbox Code Playgroud)
要将其发送到文件中,请执行
grep -C 2 yourSearch yourFile > result.txt
Run Code Online (Sandbox Code Playgroud)
也许使用像这样的grep:
grep -n -2 your_searched_for_string your_large_text_file
Run Code Online (Sandbox Code Playgroud)
会给你几乎你所期望的
-n:告诉grep打印行号
-2:打印2行(当然是想要的字符串)