Como ajustar a saída cli em colunas bonitas

2

Digamos que eu tenha um one-liner CLI, que produz algumas linhas de texto com partes separadas por espaço. Essas partes devem ser logicamente colunas, mas por causa da largura do texto, não parece.

Como eu poderia formatar automaticamente essa saída para torná-la colunas bonitas?

Por exemplo, tenho uma saída como

Alice param1 param2345 32768 50 16
Bob param2345 param1 512 10 1
_debug_user_ param0 param0 0 0 0

E eu quero fazer como

Alice        param1    param2345 32768 50 16
Bob          param2345 param1    512   10 1
_debug_user_ param0    param0    0     0  0
    
por AntonioK 11.10.2016 / 10:56

1 resposta

6

Com o Linux column(1) :

column -t <file.txt

com BSD rs(1) :

rs 0 6 <file.txt

com awk(1) :

awk 'FNR==NR { for(i=1; i<NF; i++) if(length($i)>w[i]) w[i]=length($i) }
     FNR!=NR { for(i=1; i<NF; i++) $i=sprintf("%-" (w[i]+1) "s", $i); print }' \
        file.txt file.txt
    
por 11.10.2016 / 11:00