我想知道在 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