空のセルがない場合にコンソールにTSV(csv)を表示するには: `column -t -s $ '\ t '

空のセルがない場合にコンソールにTSV(csv)を表示するには: `column -t -s $ '\ t '

私のファイルの列はtab

一部の行に空のセルがある場合(最初、中間)ファイルがあります。

この場合、column -t -s $'\t'単に失敗します。

入力する:

$ echo -e 'A\tB\tC\tD\n\tb1\t\td1\n\t\t\td2\na3\t\t\td3' > in.tsv
$ hexdump -C in.tsv 
00000000  41 09 42 09 43 09 44 0a  09 62 31 09 09 64 31 0a  |A.B.C.D..b1..d1.|
00000010  09 09 09 64 32 0a 61 33  09 09 09 64 33 0a        |...d2.a3...d3.|
0000001e

熱出力:

$ cat in.tsv | column -t -s $'\t'
A   B   C  D
b1  d1
d2
a3  d3

変える:

A       B       C       D
        b1              d1
                        d2
a3                      d3

TSVコマンドラインフォーマットの指定方法をお勧めできますか? (Unix方式ではプログラムの出力をフォーマッタにパイプしたいと思います。例えばcolumn

「修正」はありますかcolumn?たぶん別のツールですか?

ベストアンサー1

Debianを使用すると、必要な方法で正しく動作させるオプションがcolumn提供されます。-n

または、次を使用して空の列にスペースを入れることもできますsed

sed ':x s/\(^\|\t\)\t/\1 \t/; t x' < in.tsv | column -t -s $'\t'

例:

$ sed ':x s/\(^\|\t\)\t/\1 \t/; t x' < in.tsv | column -t -s $'\t'
A   B   C  D
    b1     d1
           d2
a3         d3

おすすめ記事