我們有一個數據源向我們發送我們需要自動導入到我們系統中的文件,但是經常會有其中的額外CRLF形式的壞數據一些記錄的一個或兩個字段。該文件是一個CSV格式文件和我原本以爲我已經修復了問題,這樣的:需要一種從記錄中間剝離額外CRLF的方法
awk 'NR%2-1{gsub(/\r?\n/, FS)} NR>1{printf RS}1' RS=\" ORS= input.csv > output.csv
這對於有引號內的額外CRLFs記錄偉大的工作,但事實證明我們還會得到一些沒有引號的記錄,它們會拋出awk命令。
每條記錄中的最後一個字段是一個由4-7位數字組成的數字字段,有沒有一種方法可以將該字段用作引用來保留該字段後面的CRLF並刪除其餘字段?
或者,有沒有辦法通過計算字段並在記錄的最後一個字段之前刪除它們來剝離CRLF?
輸入如下:
SMITH,John,,,,,,05/10/1966,,USA,USA,A 5551212,"Resides in California, USA",,,,Mill Valley,,,,,USA,"Northern District of California, USA",Individual,,,12/09/2003,18/08/2015,78452
SMITH,Patty,,,,,,05/10/1974,,USA,USA,A 5551212,"Resides in Oregon, USA",,,,Portland,,,,,USA,"District of Oregon, USA",Individual,,,15/09/2002,02/02/2015,121567
問題記錄看起來如下 - 注意回車和失蹤報價:
SMITH,Bill,,,,,,05/10/1966,,USA,USA,A 5551212,"Resides in California, USA",,,,Mill Valley,,,,,USA,Northern District of
California, USA,Individual,,,12/09/2003,18/08/2015,78452
對於輸出我們需要的紀錄是一樣的其他兩個 - 全部在一條線上:
SMITH,Bill,,,,,,05/10/1966,,USA,USA,A 5551212,"Resides in California, USA",,,,Mill Valley,,,,,USA,Northern District of California, USA,Individual,,,12/09/2003,18/08/2015,78452
顯示帶有和不帶引號的示例有效和損壞的輸入?併爲這些輸入你想要的輸出。 –
向問題添加了輸入和所需的輸出。 – barc0001
http://stackoverflow.com/q/4205431/258523中提到的'csv.awk'腳本可能對您有用。 –