从CSV文件中删除新行

时间:2018-03-07 12:06:01

标签: shell unix unoconv

我有一个脚本,使用unoconv将excel文件转换为csv。 我注意到由于excel中的特定格式,c​​sv中的一些记录被添加为新行。我想知道是否有可以在unix中处理。

示例有问题的数据。

col1, col2, col3
jim,"washington dc
",123

应该是正确的数据。

col1, col2, col3
jim,"washington dc",123

2 个答案:

答案 0 :(得分:0)

当您使用sed命令下面的csv文件时,它将删除带有空格的\n字符: -

 modifiedline=$(sed ':a;N;$!ba;s/\n/ /g' $line) 
 echo -e "$modifiedline\n" >> csvfile.csv

它对我有用。您必须修改现有的shell脚本,将其置于csv文件中并添加上述命令以解决您的问题。

希望这会对你有所帮助。

答案 1 :(得分:0)

您可以使用此gnu sed

cat file

col1, col2, col3
jim,"washington dc
","12
3"
foo, bar, baz
123, abc, xyz

sed命令:

sed -E ':a;N;;s/(,"[^"]*)\n/\1/;$!ba' file

col1, col2, col3
jim,"washington dc","123"
foo, bar, baz
123, abc, xyz