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