【发布时间】:2019-07-09 16:10:26
【问题描述】:
我正在尝试删除两个图案之间的线条,包括带有图案本身的线条,如果在它们之间找到另一个图案,但我不知道如何解决它。
假设我有如下输入,并且想要删除第 6 行到第 11 行,因为在模式 start 和 end 之间找到了模式 notthis:
start
AHBUe3Ar5NoD
3EcuCcD2QCja
7VmlKFbD8Rbi
end
start
OgytsRhZbD8T
notthis
0PlcUh2RLvVW
tsz2S80SyW9p
end
start
dQ5qiZCvBqcK
SufdS40X1Sh2
B1cyNshOj2Z4
end
我将我认为我理解的内容从 this answer 更改为类似的内容,但它不起作用:
/^start$/{$!{N;/^start\n(.*\n)*notthis.*\n(.*\n)*end/d;ty;P;D;:y}}
是不是因为N 只是将初始模式^start$ 后面的行附加到模式空间而忽略了后面的内容?实现我想要的目标的正确方法是什么?
【问题讨论】:
-
希望在编写包含
/^start$/{$!{N;/^start\n(.*\n)*notthis.*\n(.*\n)*end/d;ty;P;D;:y}}之类的符文的脚本时,当您自己思考时,会有一个重点——“我在做什么???”!