sedを使用して二重引用符以外のすべてのカンマをパイプに置き換えたいと思います。
したがって、.csv ファイルの次の行は次のようになります。
John,Tonny,"345.3435,23",56th Street
次のように変換されます。
John|Tonny|"345.3435,23"|56th Street
この問題を解決するために正規表現を助けることができますか?
ベストアンサー1
使用csvkit
:
$ csvformat -D '|' file.csv
John|Tonny|345.3435,23|56th Street
csvkitのツールは、複雑なCVSファイルを処理する方法を知っており、ここではcsvformat
区切りコンマを正しい方法で置き換えます|
。出力フィールドは必要に応じて参照されます。
例:
$ cat file.csv
John,Tonny,"345.3435,23",56th Street
The | factory,Ltd.,"0,0",meep meep
$ csvformat -D '|' file.csv
John|Tonny|345.3435,23|56th Street
"The | factory"|Ltd.|0,0|meep meep