連続した区切り文字を含む空の列を持つテーブルを印刷する

連続した区切り文字を含む空の列を持つテーブルを印刷する

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'

おすすめ記事