Применить функцию к diff — возможно?

Применить функцию к diff — возможно?

Интересно, возможен ли следующий случай в Unix с использованием функции diff?

Допустим, у меня есть одна строка

1234 1 2

и один файл, содержащий

1234 2 3

Например, 1234 представляет pid, 2 — использование диска, а 3 — использование процессора. Возможно ли, используя функцию diff, «объединить» мою строку со строкой в ​​файле и применить функцию суммы на лету, чтобы получить следующий конечный вывод? (pid — ключ слияния)

1234 3 5

(3 — сумма 1 и 2, 5 — сумма 2 и 3)

решение1

нет, 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

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