파일에서 필드의 고유 한 값 계산 줄이 있습니다.

파일에 약 백만 개의 줄이 있습니다. 줄 transactionid에는 반복적 인 값을 가진 이라는 필드 가 있습니다. 내가해야 할 일은 그들을 분명히 세는 것입니다.

값이 몇 번 반복되는지에 관계없이 한 번만 계산해야합니다.



답변

파일이 텍스트 파일이라고 가정하면 필드는 쉼표 구분 기호 ‘,’로 구분됩니다. 'transactionid'위치에 따라 어떤 필드 가 있는지 알 수도 있습니다 . 'transactionid'필드가 7 번째 필드 라고 가정 합니다.

awk -F ',' '{print $7}' text_file | sort | uniq -c

이것은 7 번째 필드에서 구별 / 고유 발생을 계산하고 결과를 인쇄합니다.


답변

가장 매끄러운 방법은 아니지만 다음과 같이 작동합니다.

awk '{print $1}' your_file | sort | uniq | wc -l

여기서 $1구문 분석 할 필드에 해당하는 번호입니다.


답변

파일을 정렬 할 필요가 없습니다.. (파일을 정렬해야합니다. uniq)
이 awk 스크립트는 필드가 첫 번째 공백 제거 된 필드라고 가정합니다.

awk 'a[$1] == "" { a[$1]="X" } END { print length(a) }' file