CSVファイルの処理 - 引用符を削除し、カンマ区切り文字をタブに置き換えます。

CSVファイルの処理 - 引用符を削除し、カンマ区切り文字をタブに置き換えます。

区切りファイルを変換するにはシェルコマンドが必要です。入力ファイルは二重引用符と二重引用符のない2つのバリエーションで受信され、両方のファイルは区切り文字でコンマがありました。要件は、カンマをTABに置き換えて引用符を削除することです(ファイルに二重引用符がある場合)。それ以外の場合は、カンマを変更するだけです。ファイルフィールドに変換中に無視する必要があるカンマも含まれている場合、ファイルは引用符で送信されます。 単一のコマンドは、RHEL 6.x環境のAwk 3.xで動作する必要があります。

例えば。二重引用符付きファイル1:

"Jhon","Carpenter","CA,TX,NJ"
"Mike","Painter","WA,GA,MI"

変換後はタブで区切る必要があります。

Jhon   Carpenter   CA,TX,NJ 
Mike   Painter     WA,GA,MI 

例えば。二重引用符のないファイル 2:

EMP1,123456,CA 
EMP2,456789,TX 

変換後はタブで区切る必要があります。

EMP1 123456   CA 
EMP2   456789   TX

ベストアンサー1

使用csvkit:

$ csvformat -T file1.csv
Jhon    Carpenter       CA,TX,NJ
Mike    Painter WA,GA,MI

$ csvformat -T file2.csv
EMP1    123456  CA
EMP2    456789  TX

出力がfile1.csv少し間違っているように見えますが、これはタブが正しく整列していないためです。すべての列の間にタブがあります。

CSVKitは、さまざまなCSV関連のシェルユーティリティを含むPythonベースのツールキットです。正しいCSV解析を実行し、CSVファイルをクエリ、フォーマット、変換するために使用できます。

たとえば、最初のファイルに正しいヘッダーがある場合は、それをJSONに変換するのは簡単です。

$ csvjson file1.csv
[{"First": "Jhon", "Last": "Carpenter", "Stuff": "CA,TX,NJ"}, {"First": "Mike", "Last": "Painter", "Stuff": "WA,GA,MI"}]

おすすめ記事