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