Linux 在文本文件中查找行号-不打开文件
在一个非常大的文件中,我需要找到字符串的位置(行号),然后提取该字符串上方和下方的两行 要立即执行此操作,我启动vi,找到字符串,记下它的行号,退出vi,然后使用sed提取该字符串周围的行Linux 在文本文件中查找行号-不打开文件,linux,Linux,在一个非常大的文件中,我需要找到字符串的位置(行号),然后提取该字符串上方和下方的两行 要立即执行此操作,我启动vi,找到字符串,记下它的行号,退出vi,然后使用sed提取该字符串周围的行 有没有办法简化这个过程。。。理想情况下,无需运行vi。您可以使用cat-n显示行号,然后使用awk在grep之后获取行号,以提取行号: cat -n FILE | grep WORD | awk '{print $1;}' 尽管grep已经完成了您在给出-c2时提到的内容(上面/下面两行): 使用grep-
有没有办法简化这个过程。。。理想情况下,无需运行vi。您可以使用
cat-n
显示行号,然后使用awk
在grep
之后获取行号,以提取行号:
cat -n FILE | grep WORD | awk '{print $1;}'
尽管grep
已经完成了您在给出-c2
时提到的内容(上面/下面两行):
使用
grep-n字符串文件
查找行号而不打开文件。可能会像这样使用grep:
grep -n -2 your_searched_for_string your_large_text_file
grep -B 2 -A 2 "searchstring" | sed 3d
将给你几乎你所期望的
-n:告诉grep打印行号
-2:打印另外两行(当然还有想要的字符串)您可以这样做
grep -C 2 yourSearch yourFile
要以文件形式发送,请执行以下操作:
grep -C 2 yourSearch yourFile > result.txt
您可以使用grep
-A
和-B
选项执行此操作,如下所示:
grep -n -2 your_searched_for_string your_large_text_file
grep -B 2 -A 2 "searchstring" | sed 3d
grep将找到这一行并在前后显示两行上下文,然后用sed删除第三行。这一行用
-n
最简洁。