正则表达式 – 如何创建VIM或Vi命令以在文本文件中的每一行的某个字符之后删除所有文本?

前端之家收集整理的这篇文章主要介绍了正则表达式 – 如何创建VIM或Vi命令以在文本文件中的每一行的某个字符之后删除所有文本?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
场景:

>我有一个文本文件具有管道(如|字符)分隔的数据。
>管道分隔字段中的每个数据字段可以是可变长度的,因此计数字符将不起作用(或使用某种子字符串函数…,如果甚至存在于Vim中)。

是否可以使用Vim / Vi将所有数据从第二个管道删除到整个文件的行尾?有大约15万行,所以手动这样做只会吸引一个受害者…

例如

更改以下行:

1111|random sized text 12345|more random data la la la|1111|abcde
2222|random sized text abcdefghijk|la la la la|2222|defgh
3333|random sized text|more random data|33333|ijklmnop

至:

1111|random sized text 12345
2222|random sized text abcdefghijk
3333|random sized text

我相信这可以做某事…我希望。

TIA

更新:我应该提到我在Windows XP上运行,所以我没有访问一些提到的* nix命令(CUT在Windows上无法识别)。

:%s/^\v([^|]+\|[^|]+)\|.*$/\1/

猜你在找的正则表达式相关文章