column
入力をテーブルに変換するために一般的に使用することは次のとおりです。
$ echo 'a\tb\tc\nd\te\tf' | column -t -s $'\t'
a b c
d e f
ただし、次のように空の列を縮小します。
$ echo 'a\tb\tc\nd\t\tf' | column -t -s $'\t'
a b c
d f
連続した区切り文字がある場合は、空の列を印刷する代わりに。これが私が望むものです。使用するかcolumn
、他の方法で:
a b c
d f
ベストアンサー1
以下を使用する場合GNU column
:
-N
デフォルトでは、-tオプションを使用すると、列コマンドは複数の隣接する区切り文字を単一の区切り文字にマージします。このオプションはこの動作を無効にします。このオプションはDebian GNU / Linux拡張です。
printf 'a\tb\tc\nd\t\tf\n' | column -t -n -s $'\t'
出力:
a b c
d f
使用できない場合は、sedを使用してタブ間にGNU column
スペース(またはaなどの他の項目)を追加できます。-
printf 'a\tb\tc\nd\t\tf\n' | sed -e ':loop; s/\t\t/\t-\t/; t loop' | column -t -s $'\t'