Perl脚本在模式匹配之前和之后提取2行

LSi*_*lia 5 perl

我的档案就像

line 1 
line 2 
line 3
target
line 5
line 6
line 7
Run Code Online (Sandbox Code Playgroud)

我可以写一个与目标匹配的正则表达式.我需要的是我需要抓住2,3,5,6行.有什么办法吗?

pav*_*ium 6

如果您不确定使用perl,可以轻松提取所需的上下文grepContext Line Control选项

grep -A 2 -B 2 target filename | grep -v target
Run Code Online (Sandbox Code Playgroud)

当然target需要用合适的正则表达式代替.


rob*_*más 0

多行正则表达式,例如:/\n{3}(foo)\n{3}/m;

/\n*(foo)\n*/m一般情况下的编辑工作