场景:


我有一个文本文件,该文件具有以竖线分隔的数据(如|字符)。
管道定界字段中的每个数据字段都可以具有可变长度,因此无法对字符进行计数(或使用某种子字符串函数……如果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命令(在Windows上无法识别CUT)。

最佳答案

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

09-16 19:49