Aplicar uma função no diff - possível?

Aplicar uma função no diff - possível?

Gostaria de saber se o seguinte caso é possível no Unix usando a função diff.

Digamos que eu tenha uma linha

1234 1 2

e um arquivo contendo

1234 2 3

1234 representa o pid, 2 o uso do disco e 3 o uso da CPU, por exemplo. É possível, usando a função diff, 'mesclar' minha linha com a linha do arquivo e aplicar uma função sum instantaneamente para obter a seguinte saída final? (pid sendo a chave de mesclagem)

1234 3 5

(3 sendo a soma de 1 e 2, 5 sendo a soma de 2 e 3)

Responder1

não, diffnão é possível fazer cálculos aritméticos, use awko seguinte:

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

informação relacionada