我有一个 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 列以外的其他内容。