Salida AWK desalineada

Salida AWK desalineada

Tengo un comando awk simple que genera resultados y luego envío un correo electrónico:

awk '(NR==FNR){a[$2]=sprintf("%.2f",$1*value); next} {print $1,$2,a[$2]}' OFS="\t\t\t" value=$COST /tmp/1.txt /tmp/2.txt

sin embargo, la última columna está desalineada según la segunda:

510G                    /path/to/aaaaaaaaaaaaa/                 0.00
157G                    /path/to/bbbbbbbbb/                     0.00
253M                    /path/to/ccccccccccccccc/                        0.00
61M                     /path/to/dddddddd/                      0.00
16K                     /path/to/eeeee/                 0.00
8.0K                    /path/to/fffffffff/                     0.00

¿Cómo puedo hacer que esto esté siempre alineado? /path/toes estático.

Respuesta1

Puede canalizar la salida de su comando para column -tformatear cualquier salida en columnas. La entrada debe estar delimitada por espacios en blanco, por lo que no es necesario adivinar cuántas pestañas necesita agregar.

Por ejemplo, supongamos que un archivo contiene esto:

510G        /path/to/aaaaaaaaaaaaa/          0.00
157G                /path/to/bbbbbbbbb/                 0.00
253M           /path/to/ccccccccccccccc/                  0.00
61M                  /path/to/dddddddd/               0.00
16K                  /path/to/eeeee/             0.00
8.0K                /path/to/fffffffff/              0.00

el cat the.file|column -tcomando produce esta salida:

510G  /path/to/aaaaaaaaaaaaa/    0.00
157G  /path/to/bbbbbbbbb/        0.00
253M  /path/to/ccccccccccccccc/  0.00
61M   /path/to/dddddddd/         0.00
16K   /path/to/eeeee/            0.00
8.0K  /path/to/fffffffff/        0.00

información relacionada