区切りファイルを変換するにはシェルコマンドが必要です。入力ファイルは二重引用符と二重引用符のない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"}]