大容量のCSVファイルがたくさんありますが、TSV(タブ区切り形式)で保存したいと思います。問題は、CSVファイルのフィールドにカンマがあることです。たとえば、次のようになります。
A,,C,"D,E,F","G",I,"K,L,M",Z
予想出力:
A C D,E,F G I K,L,M Z
(その間のスペースは「ハード」タブです)
このサーバーにはPerl、Python、coreutilsがインストールされています。
ベストアンサー1
Python
名前付きファイルに追加しcsv2tab
て実行可能にします。
touch csv2tab && chmod u+x csv2tab
それに追加
#!/usr/bin/env python
import csv, sys
csv.writer(sys.stdout, dialect='excel-tab').writerows(csv.reader(sys.stdin))
試運転
$ echo 'A,,C,"D,E,F","G",I,"K,L,M",Z' | ./csv2tab
A C D,E,F G I K,L,M Z
$ ./csv2tab < data.csv > data.tsv && head data.tsv
1A C D,E,F G I K,L,M Z
2A C D,E,F G I K,L,M Z
3A C D,E,F G I K,L,M Z