首页 > 解决方案 > 如何在 vi 或 vim 编辑器中删除特定字符

问题描述

我在vi中有一些txt:

|NC_004718|29751nt|SARS
|NC_045512|29903nt|Severe
|NC_004718|29751nt|SARS
|NC_045512|29903nt|Severe
|NC_004718|29751nt|SARS

现在我想替换删除 NC_004718 之后的所有内容,我的预期输出是:

NC_004718
NC_045512
NC_004718
NC_045512
NC_004718

怎么做?谢谢。

标签: vim

解决方案


例如,

:g/NC_\d\+/normal! ygnV]p
  • :g/regex/匹配线
  • normal!执行正常模式命令
  • ygn抽出之前匹配的文本:g
  • V选择整行
  • ]pp用匹配替换该行

推荐阅读