Jas*_*own 15 regex vi vim replace
场景:
|
字符中)分隔的数据.是否有可能使用Vim/Vi将第二个管道中的所有数据删除到整个文件的行尾?有大约150,000行,所以手动这样做只会吸引受虐狂......
例如
更改以下行:
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
Run Code Online (Sandbox Code Playgroud)
至:
1111|random sized text 12345
2222|random sized text abcdefghijk
3333|random sized text
Run Code Online (Sandbox Code Playgroud)
我确信这可以以某种方式完成......我希望.
TIA
更新:我应该提到我在Windows XP上运行它,所以我无法访问一些提到的*nix命令(在Windows上无法识别CUT).
Bri*_*per 30
:%s/^\v([^|]+\|[^|]+)\|.*$/\1/
Run Code Online (Sandbox Code Playgroud)
CMS*_*CMS 18
您还可以录制宏:
qq02f|Djq
然后你就可以用100 @ q播放它来在接下来的100行上运行宏.
宏观解释:
如果你不必使用vim,另一种选择是unix"cut"命令.
cut -d '|' -f 1-2 file > out.file
Run Code Online (Sandbox Code Playgroud)