出力は最大列数に分散されます。

出力は最大列数に分散されます。

foo短い出力行をたくさん提供するbashスクリプトがあります。考えるls -1。より簡潔なプレゼンテーションを得るために、出力を複数の列(たとえば)に分散したいと思いますls -C

私はこの構造を知っています。

foo | paste - - - | column -t -s $'\t'

固定数の列(この場合は3つ)を提供します。どうやってできるか動的に常に最大列数を使用するように、列数を出力幅と端末幅に調整しますか?

答え1

解決策は実際にはとても簡単です。

foo | column

columnパラメータなしで問題を解決します。私はcolumn以前に積極的に使ったことがないようです-t。この主張を無視するよう提案したSteeldriverに感謝します。

答え2

別のオプション:80列以外のものを使用するようにecho $(foo) | fold指定できます。-w WIDTH

関連情報