Aplicar una función en diff: ¿es posible?

Aplicar una función en diff: ¿es posible?

Me pregunto si el siguiente caso es posible en Unix usando la función diff.

Digamos que tengo una línea

1234 1 2

y un archivo que contiene

1234 2 3

1234 representa el pid, 2 el uso del disco y 3 el uso de la CPU, por ejemplo. ¿Es posible, utilizando la función diff, 'fusionar' mi línea con la línea del archivo y aplicar una función de suma sobre la marcha para obtener el siguiente resultado final? (pid es la clave de combinación)

1234 3 5

(siendo 3 la suma de 1 y 2, siendo 5 la suma de 2 y 3)

Respuesta1

no, diffno puedo hacer cálculos aritméticos, use awklo siguiente:

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

información relacionada