Как суммировать каждый столбец и печатать имя столбца и сумму столбца с помощью awk?

У меня есть файл с таблицей чисел; первая строка является строкой заголовка. Я хочу суммировать каждый столбец и распечатать сумму и имя столбца для каждого столбца, используя awk.

Как мне это сделать?

0
22.05.2019, 10:53
1 ответ

Предполагая, что каждая строка имеет одинаковое количество полей (столбцов):

awk '
    NR==1   { for (i=1; i<=NF; i++) header[i]=$i; next; }
            { for (i=1; i<=NF; i++) total[i] += $i; }
    END     { for (i=1; i<=NF; i++) print header[i] "=" total[i]+0 }
    '

Пример ввода:

red green blue
1 2 4
8 16 32
64 128 256

Соответствующий выход:

red=73
green=146
blue=292
5
28.01.2020, 02:30

Теги

Похожие вопросы