2012-09-17 24 views
8

Hago un tubo largo, que termina con ...| awk '{print $5"\t\t" $3"\t"$4}' en el terminal Linux. Las columnas están acolchadas con pestañas. Las primeras entradas de columna tienen diferentes números de caracteres, por lo que los resultados de la segunda columna no son perfectamente verticales. ¿Cómo hacer que la mesa se vea perfecta?awk para generar columnas similares a una tabla o de Excel en la terminal de Linux?

enter image description here

+0

Pruebe las banderas de alineación de columnas de awk ... intente buscar aquí: http: // sta ckoverflow.com/questions/6345429/how-do-i-print-some-text-in-bash-and-pad-it-with-spaces-to-a-certain-width –

Respuesta

23

tratar de tubería el resultado de -t columna:

...| awk '{print $5"\t\t" $3"\t"$4}'|column -t 

creo que sirve

+0

| column -t helps =) Gracias ¡tú! – Ivan

+1

+1 También puede usar el comando 'tabs', por ejemplo, intente configurar un tamaño de pestaña grande:' tabulaciones 25'. Entonces ejecuta tu pipa. Si es lo suficientemente grande obtendrá el resultado deseado. Sin embargo, prefiero usar 'column -t' – Steve

+0

Si está conectando a' column', ya no necesita la doble pestaña que sigue al primer campo (supongo que fue para acomodar un valor amplio en ese campo). – chepner

6

si sus campos son pestaña separa el siguiente script de una línea podría imprimir una tabla con las células fronteras

sed -e 's/\t/_|/g' table.txt | column -t -s '_' | awk '1;!(NR%1){print "-----------------------------------------------------------------------";}' 

Description   |value     |Comment 
----------------------------------------------------------------------- 
Internal    |322     | 
----------------------------------------------------------------------- 
External    |42515     | 
----------------------------------------------------------------------- 
Cuestiones relacionadas