![파일의 라인 집계](https://linux55.com/image/130948/%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EB%9D%BC%EC%9D%B8%20%EC%A7%91%EA%B3%84.png)
다음과 같은 데이터가 포함된 abc.csv 파일이 있습니다.
abc.csv
:
A B C D
a x p 1
a x p 6
b y q 5
b y q 3
a x p 2
a y q 7
awk
출력 파일을 얻으 려면 스크립트를 작성해야 합니다 . 이거 하나로 할 수 있나요 awk
?
output.csv
a x p 9
b y q 8
상황:
- ABCD는 참조용으로만 사용되는 파일 헤더입니다.
- 출력 파일에 고유한 열 A가 있도록 A 열을 집계해야 합니다.
- B열과 C열에서 비슷한 값을 가진 행만 집계하고, 그렇지 않으면 행을 무시합니다. 예를 들어 행 6을 무시합니다.
- 각 행을 반복하면서 D열 값을 추가합니다.
답변1
Awk
해결책:
awk '{ k = $1 OFS $2 OFS $3 }
{ sum[k] += $4; count[k]++ }
END{ for (i in sum) if (count[i] > 1) print i, sum[i] }' abc.csv
산출:
a x p 9
b y q 8