从 CSV 文件中删除新行
Removing new line from CSV file
我有一个脚本可以使用 unoconv 将 excel 文件转换为 csv。
我注意到由于 excel 中的特定格式,csv 中的某些记录被添加为新行。我想知道这是否可以在 unix 中处理。
示例有问题的数据。
col1, col2, col3
jim,"washington dc
",123
正确的数据应该是。
col1, col2, col3
jim,"washington dc",123
当您正在编写 csv 文件时,请使用下面的 sed
命令,它将删除带有 space:-
的 \n
字符
modifiedline=$(sed ':a;N;$!ba;s/\n/ /g' $line)
echo -e "$modifiedline\n" >> csvfile.csv
对我有用。您必须修改现有的 shell 脚本,将其写入 csv
文件并添加上述命令来解决您的问题。
希望对您有所帮助。
你可以使用这个 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//;$!ba' file
col1, col2, col3
jim,"washington dc","123"
foo, bar, baz
123, abc, xyz
我有一个脚本可以使用 unoconv 将 excel 文件转换为 csv。 我注意到由于 excel 中的特定格式,csv 中的某些记录被添加为新行。我想知道这是否可以在 unix 中处理。
示例有问题的数据。
col1, col2, col3
jim,"washington dc
",123
正确的数据应该是。
col1, col2, col3
jim,"washington dc",123
当您正在编写 csv 文件时,请使用下面的 sed
命令,它将删除带有 space:-
\n
字符
modifiedline=$(sed ':a;N;$!ba;s/\n/ /g' $line)
echo -e "$modifiedline\n" >> csvfile.csv
对我有用。您必须修改现有的 shell 脚本,将其写入 csv
文件并添加上述命令来解决您的问题。
希望对您有所帮助。
你可以使用这个 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//;$!ba' file
col1, col2, col3
jim,"washington dc","123"
foo, bar, baz
123, abc, xyz