我是vim的新手,我拥抱文本文件如下:
ZK792.6,ZK792.6(let-60),cel-miR-62(18),0.239
UTR3,IV:11688688-11688716,0.0670782
ZC449.3b,ZC449.3(ZC449.3),cel-miR-62(18),0.514
UTR3,X:5020692-5020720,0.355907
首先,我想删除偶数(2,4,6 ...)的所有行。
其次,我想从整个文件中删除(18)。举个例子: cel-miR-62(18)将是cel-miR-62。
第三:如何删除包括它在内的所有括号? 有人会帮我这个吗?
答案 0 :(得分:2)
第一个:
:g/[02468]\>/d
其中:g
匹配斜杠之间的正则表达式的所有行,并在匹配的行上运行d
(删除行)。正则表达式很容易阅读,唯一有趣的符号可能是\>
,它匹配单词的结尾。
关于第二个问题:
:%s/\V(18)//g
其中%
是规范含义"文件的所有行",s
是替换命令,\V
设置"非常无害&#34 34;正则表达式模式(不确定你的默认值是什么,你可能不需要这个),最后g
使得vim替换每一行上的所有匹配项(带有空字符串,斜杠之间的字符串)。确保:set gdefault?
打印nogdefault
(默认设置为gdefault
),否则,从替换命令中删除最终g
。
答案 1 :(得分:1)
:g/^/+d
:%s/(18)//g
:%s/(.\\{-})//g
注意:第三个答案中的模式是非贪婪的匹配。