我通過在bash CSV文件的集合迭代,運行:在一個CSV sed的更換空白(使用W/Postgres的複製命令)
iconv --from-code=ISO-8859-1 --to-code=UTF-8 ${FILE} | \
sed -e 's/\"//g' | \
sed -e 's/, /,/g' \
> ${FILE}.utf8
運行iconv
修復UTF-8字符,則第一個sed
調用將刪除雙引號字符,並且最後的sed
調用應該刪除逗號周圍的前導空格和尾部空格。
不過,我還是有保存的文件這樣一行:
FALSE,,,, 2.40,,
的COPY
命令的Postgres是一種愚蠢的,所以它認爲「2.40」不是一個數值有效的語法。
我在哪裏出錯了/我處理的CSV文件?謝謝!
遺忘前導空間..它不刪除單個尾隨空間。 – Wells 2012-04-14 23:25:32
你不知道;如果它有*兩個*尾部空格,則會得到一個輸出。這就是括號內的意思。 – geekosaur 2012-04-14 23:33:00