如何从文件中grep出一批连续行

如何从文件中grep出一批连续行,grep,Grep,我想grep出一批连续的行,从特定的模式开始,到特定的模式结束。 例如,文件的内容如下所示: 第1行 第2行 。 . 我的开始模式 。 . 我的结束模式 。 . 第n行 grep的输出应该如下所示: 我的开始模式 。 . 我的结束模式 谢谢 不知道grep是否能做到这一点,但awk能做到 awk '/start pattern/,/end pattern/' data_file_name 如果要从stdin中筛选,请删除文件名。我不知道grep是否可以这样做,但awk可以 awk '/

我想grep出一批连续的行,从特定的模式开始,到特定的模式结束。 例如,文件的内容如下所示:

第1行

第2行

。 .

我的开始模式

。 .

我的结束模式

。 .

第n行

grep的输出应该如下所示:

我的开始模式

。 .

我的结束模式


谢谢

不知道grep是否能做到这一点,但awk能做到

awk '/start pattern/,/end pattern/' data_file_name

如果要从stdin中筛选,请删除文件名。我不知道grep是否可以这样做,但awk可以

awk '/start pattern/,/end pattern/' data_file_name

如果要从stdin中筛选,请删除文件名

为什么选择grep?这似乎不是适合此作业的工具。Grep将在匹配后和/或匹配前显示N行N是一个数字,但不会显示两个匹配之间的行。看看awk实用程序。其他工具还可以,只是对我来说这似乎是一个巨大的问题,我可能错了。我在看awk,但到目前为止还没能做到这一点…为什么是grep?这似乎不是适合此作业的工具。Grep将在匹配后和/或匹配前显示N行N是一个数字,但不会显示两个匹配之间的行。看看awk实用程序。其他工具还可以,只是对我来说这似乎是一个巨大的问题,我可能错了。我正在查看awk,但到目前为止还没有实现……谢谢,这正是我所需要的。我得到了这个答案,我想知道是否有办法修改这个awk命令,从输出中删除开始模式和结束模式。我想:awk'/start pattern/,/end pattern/{如果!/start pattern/&&!/end pattern print}“data_file_Name知道必须有一些简短的方法才能做到这一点,并进行了快速搜索,找到了谢谢,这正是我所需要的。我得到了这个答案,我想知道是否有办法修改此awk命令,以从输出中删除开始模式和结束模式。在我的脑海中:awk'/start pattern/,/end pattern/{if!/start pattern/&&!/end pattern print}数据文件名知道必须有一些简单的方法来实现这一点,并进行了快速搜索并找到了