diff에 함수 적용 - 가능합니까?

diff에 함수 적용 - 가능합니까?

diff 함수를 사용하면 Unix에서 다음과 같은 경우가 가능한지 궁금합니다.

한 줄이 있다고 가정 해 봅시다

1234 1 2

그리고 다음을 포함하는 파일 하나

1234 2 3

예를 들어 1234는 pid, 2는 디스크 사용량, 3은 CPU 사용량을 나타냅니다. diff 함수를 사용하여 내 행을 파일의 행과 '병합'하고 즉시 합계 함수를 적용하여 다음과 같은 최종 출력을 얻을 수 있습니까? (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

관련 정보