Use column
.
Exemplo:
ls -1 | column -c 100
Isso formatará a saída de ls -1
(uma entrada por linha) para caber tantas colunas de tamanho igual quanto possível em linhas com largura de 100 caracteres.
Tenho certeza que é muito simples, mas não me lembro como dizer a um pager de terminal (mais / menos / pg / mais) para exibir uma longa lista em colunas.
Como minha entrada é apenas uma lista de elementos curtos, exibi-la da mesma maneira ls
faz isso por padrão, o que me pouparia de rolagem desnecessária e precioso espaço na tela.
ruim:
aaa
bbb
ccc
ddd
eee
fff
ggg
hhh
iii
bom:
aaa ddd ggg
bbb eee hhh
ccc fff iii
Você pode usar paste
para unir linhas de stdin:
paste - - - < filename
Semelhante à resposta de Daniel Beck:
$ echo {a..c}{a..c}{a..c}| tr \ \n | column | sed 's/\t/ /g' | $PAGER
aaa aba aca baa bba bca caa cba cca
aab abb acb bab bbb bcb cab cbb ccb
aac abc acc bac bbc bcc cac cbc ccc
A chave é tornar a saída mais compacta, substituindo as guias por espaços.