从 CSV 文件中删除新行



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

对有问题的数据进行采样。

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

正确的数据应该是。

col1, col2, col3
jim,"washington dc",123
您可以使用

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

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

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

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

希望这对您有所帮助。

最新更新