2017-12-08 8 views
-1

UNIX의 기본 지식을 초과하는 문제가 발생했습니다.유닉스 파일 처리 : 다른 열의 값을 기준으로 열의 값을 합계 할 수있는 방법

A AA  234 
B BB  5 
C CC  56 
C CA  92 
B CB  35 
C CD  36 

내가 원하는 합계 최대 값을 기준으로 3 열의 값을 에 첫 번째 열 및 목록으로 두 번째 열 값의 : 나는 다음과 같은 형식의 파일이 있습니다.

나는 아래의 형식으로 결과를 기대하고 있습니다.

A AA  234 
B BB,CB  40 
C CC,CA,CD 184 

친절하게 나를 UNIX 기능을 사용하여 위의 결과를 얻을하는 데 도움이됩니다.

+0

이봐, 내 대답은 도움이 당신을했다 :

이 당신에게 당신의 입력 파일에 대해 다음 입력을 줄 것이다? – Allan

답변

0

당신은 sorting 파일 후 다음 awk 명령을 사용할 수 있습니다 agglo.txt 당신의 입력 파일입니다

sort agglo.txt | awk '{if(prev==$1){sum+=$3; buffer=buffer","$2;}else{print prev" "buffer" "sum; prev=$1; sum=$3; buffer=$2}}END{print prev" "buffer" "sum;}' 

.

A AA  234 
B BB  5 
C CC  56 
C CA  92 
B CB  35 
C CD  36 

enter image description here