첫 번째 열을 기반으로 데이터를 병합하는 방법은 무엇입니까?

첫 번째 열을 기반으로 데이터를 병합하는 방법은 무엇입니까?

몇 가지 간단한 데이터가 있습니다.

digital 5434
ero 3464
3es 69955
digital 1948
ero 5783
ride 5884

이 입력 파일을 처리하고 첫 번째 필드가 동일한 두 번째 필드 값을 모두 합산하고 싶습니다. 최종 출력 파일은 다음과 같아야 합니다.

digital 7382
ero 9247
3es 69955
ride 5884

awk를 사용하면 이것이 가능하다고 생각했나요?

도움을 주셔서 감사합니다.

답변1

간단한 방법은 다음과 같습니다.

$ awk '{a[$1]+=$2}END{for(i in a){print i,a[i]}}' data 
ero 9247
3es 69955
digital 7382
ride 5884

이는 파일의 대부분의 데이터를 메모리에 저장하므로 매우 큰 파일의 경우 문제가 발생할 수 있습니다.

관련 정보