Terminal pager: Como exibir uma lista em colunas?

6

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
    
por octosquidopus 22.11.2012 / 20:02

3 respostas

7

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.

    
por 22.11.2012 / 20:24
0

Você pode usar paste para unir linhas de stdin:

paste - - - < filename
    
por 22.11.2012 / 22:12
0

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.

    
por 06.12.2012 / 19:34

Tags