Интересно, возможен ли следующий случай в Unix с использованием функции diff.
Допустим, у меня есть одна строка
1234 1 2
и один файл, содержащий
1234 2 3
1234, представляющий, например, pid, 2 использование диска и 3 использование процессора. Возможно ли, используя функцию diff, «объединить» мою строку со строкой в файле и применить функцию суммирования на лету, чтобы получить следующий окончательный результат? (pid — ключ слияния)
1234 3 5
(3 — сумма 1 и 2, 5 — сумма 2 и 3)
нет, diff
не может выполнять арифметические вычисления, используйте awk
следующим образом:
awk '{ grouping_disks[$1]+=$2; grouping_cpus[$1]+=$3 }
END{
for(indx in grouping_disks)
print indx, grouping_disks[indx], grouping_cpus[indx]
}' file1 file2 fileN