两行之间所有文本的正则表达式

时间:2013-03-04 16:32:36

标签: regex grep

我想匹配像这样的文字

my  begin line
not useful text that I cannot match because I don't know how it is composed
my end line

我会匹配上面的所有文字,我现在的问题是我无法匹配所有文字,只是第一行有一个像这样的重复文本:

my begin line\n.*my end line

所以我很困惑,有什么帮助吗?

3 个答案:

答案 0 :(得分:1)

你可以用sed:

来做
sed -n '/my begin line/,/my end line/p'

答案 1 :(得分:1)

你在评论中提到了awk:

这将为您提供所有文本(包括带开头,结束模式的行)

awk '/my  begin line/,/my end line/' file

这只为你提供了开始/结束模式之间的界限(没有带开头,结束模式的行)

awk '/my  begin line/{f=1;next;}/my end line/{f=0}f' file

答案 2 :(得分:1)

要在两种模式之间打印线条,排除包含模式的线条本身使用:

sed -n '/my begin line/,/my end line/ {/my begin line/n;/my end line/!p}' file
相关问题