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

관련 정보