Накопление
Предположим вы имеете два файла deposite и withdrawals, записи которых содержат имя поля и количество полей. Для каждого имени вы хотите напечатать итог net, определяющийся вычитанием общего вывода из общего депозита. Баланс net может быть вычислен следующей программой:
awk ' FILENAME == "deposits" { balance[$1] += $2 } FILENAME == "withdrawals" { balance[$1] -= $2 } END { for (name in balance ) print name, balance[name] }' deposits withdrawals
Первый оператор использует массив balance для накопления общего количества для каждого имени в файле deposits. Второй оператор вычитает соответствующий вывод из каждого общего депозита. Оператор END печатает каждое имя с соответствующим итогом.