Неправильно выровненный вывод AWK

Неправильно выровненный вывод AWK

У меня есть простая команда awk, генерирующая вывод и затем отправляющая электронное письмо:

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

Однако последний столбец смещен относительно второго:

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

Как мне сделать так, чтобы это всегда было выровнено? /path/toявляется статическим.

решение1

Вы можете передать вывод вашей команды в column -tформат любого вывода в столбцы. Ввод должен быть разделен пробелами, поэтому вам не нужно гадать, сколько табуляций нужно добавить.

Например, предположим, что файл содержит следующее:

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

команда cat the.file|column -tвыдает следующий вывод:

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

Связанный контент