スポンサーリンク

-tオプションでスペース区切りのデータを整形

※MACターミナル(BSD系)での動作確認です。

-tオプションでスペース区切りのデータを整形します。
このオプションは必須のオプションですね。

例えば、下記のin.txtがあったとします。

$ cat in.txt 
1 99     2 4
3   99 1    7
2  78    4 9
5    78 7 1

-tオプションをつけて実行します。
$ column -t in.txt 
1  99  2  4
3  99  1  7
2  78  4  9
5  78  7  1

スポンサーリンク

-sオプションで区切り文字を指定

-sオプションで区切り文字を指定できます。
例えば、下記のin2.txtで、カンマ区切りの文字を区切りの文字として指定します。

$ cat in2.txt 
1 ,99    , 2, 4
3  , 99 ,1   , 7
2 , 78   , 4 ,9
5  ,  78, 7, 1

-sオプションでカンマを指定します。

$ column -t -s, in2.txt 
1    99       2     4
3     99     1      7
2     78      4    9
5      78     7     1

スペースで形が崩れています。
ここで、もう一度-tオプションで実行します。

$ column -t -s, in2.txt >in3.txt
$ column -t in3.txt 
1  99  2  4
3  99  1  7
2  78  4  9
5  78  7  1

スペースの文字数を調整

スペース2文字を1文字に調整してみます。
awkのgsub()で置換すると楽ですね。

参考:awkの文字列置換関数gsub()の使い方

ワンライナーで下記のように書けます。

$ column -t in3.txt >in4.txt 
$ cat in4.txt | awk '{gsub("  ", " ", $0); print $0}'
1 99 2 4
3 99 1 7
2 78 4 9
5 78 7 1

スポンサーリンク