Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在文本文件中查找行号-不打开文件_Linux - Fatal编程技术网

Linux 在文本文件中查找行号-不打开文件

Linux 在文本文件中查找行号-不打开文件,linux,Linux,在一个非常大的文件中,我需要找到字符串的位置(行号),然后提取该字符串上方和下方的两行 要立即执行此操作,我启动vi,找到字符串,记下它的行号,退出vi,然后使用sed提取该字符串周围的行 有没有办法简化这个过程。。。理想情况下,无需运行vi。您可以使用cat-n显示行号,然后使用awk在grep之后获取行号,以提取行号: cat -n FILE | grep WORD | awk '{print $1;}' 尽管grep已经完成了您在给出-c2时提到的内容(上面/下面两行): 使用grep-

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

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


有没有办法简化这个过程。。。理想情况下,无需运行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
最简洁。