加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何使用vim从文本中提取特定段落?

发布时间:2020-12-15 22:18:11 所属栏目:安全 来源:网络整理
导读:我试图从包含这种格式的文本的大文件中提取多次测试 CL blahblahblah SP blahblahblah blahblahblah blahblahblah DE blahblahblahblahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah AB blahblahblah blahblahbl
我试图从包含这种格式的文本的大文件中提取多次测试

CL blahblahblah  
SP blahblahblah blahblahblah blahblahblah  
DE blahblahblahblahblahblah blahblahblah blahblahblah   
   blahblahblah blahblahblah blahblahblah blahblahblah  
AB blahblahblah blahblahblah blahblahblah 
   blahblahblahblahblahblah blahblahblah blahblahblah
   blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah    
   blahblahblah blahblahblah blahblahblah   
C1 blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah 
   blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah   
   blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah 
   lahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah 
RP blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah
   blahblahblah blahblahblah  
EM blahblahblah blahblahblah blahblahblah blahblahblah  
NR blahblahblah blahblahblah blahblahblah blahblahblah  
TC blahblahblah blahblahblah blahblahblah blahblahblah 
   blahblahblah blahblahblah blahblahblah blahblahblah  
Z9 blahblahblah blahblahblah blahblahblah blahblahblah  
PU blahblahblah blahblahblah blahblahblah blahblahblah  
PI blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah

我只对以C1,AB,TI开头的条目感兴趣,但有时这些条目跨越多行,并且跟随它们的XX标记行并不总是相同.有没有一种简单的方法只保留这些条目?
所以我剩下的文字应该是这样的:

TI blahblahblah  
AB blahblahblah b lah blahblah blah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah     
C1 blahblahblah blahblahblah blahblahblah blahblahblah  
   blahblahblah blahblahblah blahblahblah blahblahblah  
   blahblahblah blahblahblah blahblahblah blahblahblah 
TI blah blah blah blah blah blah  
AB blahblahblah blahblahblah blahblahblah blahblahblahblahblahblah blahblahblah blahblahblah blahblahblah blahblahblahblah blahblahblah blahblahblah blahblahblah   
   blahblahblah blahblahblah blahblahblah blahblahblah  blahblahblah blahblahblah blahblahblah blahblahblah 
   blahblahblah blahblahblah blahblahblah blahblahblah 
C1 blahblahblah blahblahblah blahblahblah blahblahblahblahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah

等等..

非常感谢!

解决方法

我会做:

:$put='X' | 1,$-1g/^(s|C1|AB|TI)@!/,/^S/-d
:$d

这将执行以下操作:

>在末尾插入一行包含“X”的行
>对于除最后一行(1,$ – 1)之外的每一行,如果它以非空格开始并且不以C1,AB或TI(g / pattern /)开头,则删除(d)直到下一行不以空格开头,/ pattern / not included( – 这是-1的缩写)
>最后删除“X”行

为了尝试使用Gvim:

>将此代码复制到剪贴板
>在Gvim中运行:@(从链接到剪贴板的寄存器中播放Ex命令).

我得到了什么:

AB blahblahblah blahblahblah blahblahblah 
   blahblahblahblahblahblah blahblahblah blahblahblah
   blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah    
   blahblahblah blahblahblah blahblahblah   
C1 blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah 
   blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah   
   blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah 
   lahblahblah blahblahblah blahblahblah blahblahblah blahblahblah blahblahblah

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读