在 diff 上应用函数 - 可能吗?

在 diff 上应用函数 - 可能吗?

我想知道在 Unix 中使用 diff 函数是否可能出现以下情况。

假设我有一行

1234 1 2

和一个文件包含

1234 2 3

例如,1234 代表 pid,2 代表磁盘使用情况,3 代表 CPU 使用情况。是否可以使用 diff 函数将我的行与文件中的行“合并”,并动态应用 sum 函数以获得以下最终输出? (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

相关内容