1

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

抽样有问题的数据。

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

正确的数据应该是。

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

2 回答 2

1

你可以使用这个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
于 2018-03-08T17:19:36.063 回答
0

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

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

这个对我有用。您必须修改现有的 shell 脚本并将其拧入csv文件并添加上述命令来解决您的问题。

希望这会帮助你。

于 2018-03-07T12:18:35.200 回答