二重引用符以外のすべてのカンマをパイプに置き換えます。

二重引用符以外のすべてのカンマをパイプに置き換えます。

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

おすすめ記事