簡體   English   中英

從 CSV 文件中刪除新行

[英]Removing new line from CSV file

我有一個使用 unoconv 將 excel 文件轉換為 csv 的腳本。 我注意到由於 excel 中的特定格式,c​​sv 中的一些記錄被添加為新行。 我想知道是否可以在 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

當您在sed命令下使用 csv 文件時,它將刪除帶有空格的\\n字符:-

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

這個對我有用。 您必須修改現有的 shell 腳本,將其寫入csv文件並添加上述命令來解決您的問題。

希望這會幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM