안녕하세요. 현재 제가 나열하는 데이터는 고객 ID, 이름, 성, 성별, 지출 금액입니다.
REDACTED
awk에서 이 데이터 파일을 반복하여 고객 ID $1과 일치하는 항목이 있는지 확인한 다음 일치하는 항목이 있으면 구매한 번호를 추가하려면 어떻게 해야 합니까?
가장 좋은 추측은 이전 행과 다음 행을 확인하고 작은 비교를 수행하는 것입니다. 그러나 이는 특히 많은 양의 데이터를 처리할 때 느리게 느껴지며 이를 수행하는 방법을 이해하지 못합니다.
awk 'BEGIN {
if (array[$0] == array[$1])
#match
#combine the two and add the purchase {print sum+=$5}
}
else
{print}
}' < infile > outfile
예상 출력
REDACTED
답변1
awk 'BEGIN{ FS=OFS="," }
{ $5=sum[$1]+=$5; customer[$1]=$0 }
END{ for (c in customer) print customer[c] }' infile