输出分布到最大列数

输出分布到最大列数

我有一个 bash 脚本foo,它为我提供了许多短行输出。思考ls -1。为了获得更紧凑的演示文稿,我想将输出分布在多个列上,例如ls -C.

我知道像这样的结构

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

会给我固定数量的列,在本例中为三列。我怎么能够动态地调整列数以输出宽度和终端宽度,以便我始终使用最大列数?

答案1

解决方案实际上太简单了:

foo | column

没有任何参数就可以column解决问题。我想我column以前从来没有主动使用过-t。感谢 Steeldriver 建议忽略这个论点。

答案2

另一种选择:echo $(foo) | fold您可以指定-w WIDTH使用 80 列以外的其他内容。

相关内容