Python

Python

大容量の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

おすすめ記事