2012-05-03 43 views
1

我可以輕鬆地上傳一個文件由^ 它看起來像分隔...將報價

CN^^其他2012-05-03 0時02分25秒^^^^^的Mozilla/5.0 ^通用網頁瀏覽器^^^^^^^^

CN^others^2012-05-03 00:02:26 ^^^^^ Mozilla/5.0^generic web browser ^^^^^^^^

但是,如果我有一個雙引號的地方,它失敗的錯誤消息...

線:1 /場:,接近雙引號(「)和場分離器之間的數據:網絡現場開始於: 遇到的錯誤太多。限制是:0

CN^^其他2012-05-03 0時02分25秒^^^^^「的Mozilla/5.0 ^通用的Web瀏覽器^^^^^^^^

我做定期以「Mozilla作爲瀏覽器名稱獲取文件,如何用雙引號插入數據?

+0

sed's/\「//'#使用sed我已經刪除了雙引號,但我想知道如何在插入數據時處理引號 – shantanuo

回答

3

報價可以用另一個報價轉義。例如,字段:This field has "internal quotes".將成爲This field has ""internal quotes"".

sed 's/\"/\"\"/g'應該做的伎倆。

請注意,爲了導入包含帶引號的換行符的數據,您需要在導入配置上將allow_quoted_newlines標誌設置爲true。這意味着導入不能並行處理,因此可能比導入未設置該標誌的數據要慢。

+0

我以gzip格式從第三方獲取文件,沒有機會執行sed命令,我想知道是否可以有一個參數,當分隔符類似'^'或管道'|'時,允許引號,在這種情況下,不需要轉義雙引號。 – shantanuo

+1

我已經提交了一個內部特性請求來允許指定任意(或不包括)引號字符,我認爲這將比嘗試確定引用基於分隔符的行爲更清楚。 –

+0

@shantanuo什麼原因你沒有upvote這個回答? –