Eine Funktion auf Diff anwenden – möglich?

Eine Funktion auf Diff anwenden – möglich?

Ich frage mich, ob der folgende Fall unter Unix mit der Diff-Funktion möglich ist.

Nehmen wir an, ich habe eine Zeile

1234 1 2

und eine Datei mit

1234 2 3

1234 steht beispielsweise für die PID, 2 für die Festplattennutzung und 3 für die CPU-Nutzung. Ist es möglich, mithilfe der Diff-Funktion meine Zeile mit der Zeile in der Datei zu „verschmelzen“ und eine Summenfunktion direkt anzuwenden, um die folgende endgültige Ausgabe zu erhalten? (PID ist der Zusammenführungsschlüssel)

1234 3 5

(3 ist die Summe von 1 und 2, 5 ist die Summe von 2 und 3)

Antwort1

nein, diffkann keine arithmetischen Berechnungen durchführen, verwenden Sie es awkwie folgt:

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

verwandte Informationen