タブ区切りの列を出力する簡単なコマンドはありますか?

タブ区切りの列を出力する簡単なコマンドはありますか?

echo -e "var1\tvar2\t\var3\tvar4" > fooたとえば、出力を含むファイル(として生成されます)があります。

$ cat foo
case    elems   meshing nlsys
uniform 2350    0.076662        2.78
non-conformal   348     0.013332        0.55
scale   318     0.013333        0.44
smarter 504     0.016666        0.64
submodel        360     .009999 0.40
unstruct-quad   640     0.019999        0.80
unstruct-tri    1484    0.01    0.88

vim私は次のような出力を好みます(ここではsumを使用します:set tabstop=14)。

case          elems         meshing       nlsys
uniform       2350          0.076662      2.78
non-conformal 348           0.013332      0.55
scale         318           0.013333      0.44
smarter       504           0.016666      0.64
submodel      360           .009999       0.40
unstruct-quad 640           0.019999      0.80
unstruct-tri  1484          0.01          0.88

cat$ tabs=15Bashで使用すると、同じ機能が得られます(このトピックを参照)。質問)。自動的にフォーマットできるプログラムはありますか?tabsファイルを読み取る前に値を試したくありません。cat

ベストアンサー1

私は通常columnこの目的のためにこのプログラムを使います。このプログラムはbsdmainutilsDebian で次のパッケージで提供されます。

column -t foo

出力:

case           elems  meshing   nlsys
uniform        2350   0.076662  2.78
non-conformal  348    0.013332  0.55
scale          318    0.013333  0.44
smarter        504    0.016666  0.64
submodel       360    .009999   0.40
unstruct-quad  640    0.019999  0.80
unstruct-tri   1484   0.01      0.88

column(1)私のシステムから取得したもの:

...

-t      Determine the number of columns the input contains and create a
        table.  Columns are delimited with whitespace, by default, or
        with the characters supplied using the -s option.  Useful for
        pretty-printing displays.

...

おすすめ記事