如何删除csv文件中字段内的换行符?

Hải*_*àng 1 csv vim

我有一个 csv 文件,它在这样的字段内有换行符:

"abc" , "adef
efw", "abc"
"abc","awe","abc"
Run Code Online (Sandbox Code Playgroud)

应该是:

"abc", "adefefw","abc"
"abc","awe","abc"
Run Code Online (Sandbox Code Playgroud)

有谁知道一些工具或脚本来解决这个问题?我更喜欢使用 Vim。

bar*_*baz 5

如果您的所有字段都像示例中一样用双引号引用,则可以简单地删除非双引号后面的所有换行符:

%s/\([^"]\)\n/\1/
Run Code Online (Sandbox Code Playgroud)

对于那些寻找非交互式解决方案的人来说,sed在替换换行符时很难使用。但是,使用 perl,您可以使用与上述相同的表达式:

perl -p -e 's/([^"])\n/\1/'
Run Code Online (Sandbox Code Playgroud)