翻訳するだけなら すべてのタブ文字からコンマ文字、tr
ここの空白は文字どおりのタブです:
$ echo "hello world" | tr "\\t" ","
hello,world
もちろん、ファイル内の文字列リテラル内にタブを埋め込んでいる場合は、それらも正しく変換されません。しかし、埋め込まれたリテラル タブはかなり一般的ではありません。
perl -lpe 's/"/""/g; s/^|$/"/g; s/\t/","/g' < input.tab > output.csv
Perl は一般に、sed、awk、Python よりもこの種の処理が高速です。
カンマの埋め込みが心配な場合は、もう少し賢い方法を使用する必要があります。以下は、標準入力から TSV 行を取得し、CSV 行を標準出力に書き込む Python スクリプトです:
import sys
import csv
tabin = csv.reader(sys.stdin, dialect=csv.excel_tab)
commaout = csv.writer(sys.stdout, dialect=csv.excel)
for row in tabin:
commaout.writerow(row)
次のようにシェルから実行します:
python script.py < input.tsv > output.csv
-
tsv ファイル全体を csv ファイルに変換する場合:
$ cat data.tsv | tr "\\t" "," > data.csv
-
一部のフィールドを省略したい場合:
$ cat data.tsv | cut -f1,2,3 | tr "\\t" "," > data.csv
上記のコマンドは、data.tsv ファイルを data.csv ファイルに変換します最初の 3 つだけを含む フィールド。