替换不确定数量的分号,但不仅仅是一个

Susbtitute an indeterminate number of semicolons but not one only

我有一个格式错误的 CSV 文件,其中有很多行类似于:

a;b;c;d;e;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;^M

我正在努力寻找在我的 Vi 编辑器中使用的正确正则表达式来消除多个连续的分号(每行有很多分号)和 DOS ^M 并仅获取干净的数据,例如

a;b;c;d;e;

首先,您需要使用

删除尾随分号
:%s/;\+$//g

然后,运行将换行符转换为 LF:

::set ff=unix

并保存文件:

:w