繁体   English   中英

如何使用VIM在文件的行尾添加方括号

[英]How add a square bracket to end of line in file using VIM

我有一个超过500万行的文本文件。 我正在使用VIM编辑这些文件。

我的文本在每行中都有一组方括号。 不幸的是,有些行没有右方括号。

some text [ text

some text [ text]

some text [ text]

some text [ text

some text [ text]

我需要我的文字

some text [text]

some text [text]

some text [text]

some text [text]

some text [text]

我想知道如何使用Vim完成上述结果。

:%s/[^\]]$/&]

替代EOL每前最后一个字符是不是]与自身随后是] ,主要增加了悬架托架那里是没有的。

现在,在您的原始代码段中,左括号与后面的单词隔开一个空格,因此您可能需要进行第二次替换才能清除整个内容:

:%s/\[\s*/[

有很多方法:

  • 可视块- <cv>然后选择所有行,然后按$A]<esc>
  • 替代- :%s/$/]/
  • 通过常规命令- :%normal A]
  • qqA]jq然后通过500000@q执行

就个人而言,我会选择换人。

@PeterRincker的解决方案似乎很棒,可以在所选行的末尾添加一个]

这是一个建议,在一个命令中向所有非空行中以[ ] (或以[ ]开头,后跟空格)的非空行中添加一个]

:%s/[^\]]\+ *$/&]/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM