在一个非常大的文件中,我需要找到字符串的位置(行号),然后提取该字符串上方和下方的2行。在文本文件中查找行号 - 无需打开文件
要做到这一点 - 我启动vi,找到字符串,记下它的行号,退出vi,然后使用sed来提取字符串周围的行。
有没有一种方法来简化这个过程......理想情况下,不必运行vi。
在一个非常大的文件中,我需要找到字符串的位置(行号),然后提取该字符串上方和下方的2行。在文本文件中查找行号 - 无需打开文件
要做到这一点 - 我启动vi,找到字符串,记下它的行号,退出vi,然后使用sed来提取字符串周围的行。
有没有一种方法来简化这个过程......理想情况下,不必运行vi。
你可以做
grep -C 2 yourSearch yourFile
要在发送文件,这样做
grep -C 2 yourSearch yourFile > result.txt
可以以提取行号grep
后使用cat -n
显示的行号,然后使用awk
获得的行号:
cat -n FILE | grep WORD | awk '{print $1;}'
虽然grep
已经这样做了,你提什么,如果你给-C 2
(高于/低于2行):
grep -C 2 WORD FILE
使用grep -n string file
找到行号,而无需打开该文件。
也许用grep这样的:
grep -n -2 your_searched_for_string your_large_text_file
会给你你期待什么几乎
-n:告诉grep来打印行数
-2:打印2条额外的线路(当然)
您可以使用grep -A
和-B
选择这样做,是这样的:
grep -B 2 -A 2 "searchstring" | sed 3d
的grep会发现行,并显示两行上下文前后,后来用sed删除第三个。
这与'-n'是最简洁的。 – InternetSeriousBusiness