sed中的行范围在文件中多次匹配

时间:2014-06-17 20:45:15

标签: sed

假设我有一个文件my_file

start
startx
start3
hi
start4
end
done
stop
endagain

现在我尝试sed -n '/start/,/end/p' < my_file。自sed发生4次以来,start将如何解释这一系列的行?

1 个答案:

答案 0 :(得分:3)

当针对您的示例输入运行命令时,将显示包含start第一行行,其中最近的行包含{{1} (包含),将匹配。

end不支持重叠范围:

  • 一个范围的起始模式与一行匹配后,查找范围的结尾将从 next 行[1]开始,并且 start 模式将发生,直到找到范围结束后的
  • 一旦结束模式匹配或遇到输入结束,范围就会结束。

寻找 next 范围,然后在之后的行开始结束前一个

请注意,我在这里松散地使用术语“line”:虽然这是在行上操作的默认情况,但在sed术语中它应该被称为模式空间可以不是一行,取决于脚本中的命令如何操作读取的行。

[1]请注意,相比之下,sed开始在相同的行(记录)中查找结束模式。