我有很多类似下面的文件:
HR0100001012010093001
EF0000120100930000000
HR0200001012010093001
EF0000120100930000000
HR0900001012010093001
EF000012010093000000
HR1000001012010093001
EF000012010093000000
HR1100001012010093001
text
EF000012010093000000
HR1200001012010093001
EF000012010093000000
HR1300001012010093001
EF000012010093000000
HR0100001012010093001
text
EF0000120100930000000
HR2000001012010093001
EF000012010093000000
HR2200001012010093001
EF000012010093000000
我想剥离所有以HRxx开头并以EF *结尾的块,除了那些以HR01开头的块,即我想得到以下结果:
HR0100001012010093001
EF0000120100930000000
HR0100001012010093001
text
EF0000120100930000000
使用以下命令:
:%s/HR01\_.\{-}EF.*$//g
我可以删除我正在搜索的行;作为最后一步,我想使用“非运算符”来反转结果,从而得到我实际需要的行。不幸的是我不明白该怎么做。
非常感谢任何帮助。
谢谢, 弗朗西斯
答案 0 :(得分:2)
找到解决方案:
%s/HR\(01\)\@!\_.\{-}EF.*$//g