![파일의 필드에 대한 고유 값 계산](https://linux55.com/image/20289/%ED%8C%8C%EC%9D%BC%EC%9D%98%20%ED%95%84%EB%93%9C%EC%97%90%20%EB%8C%80%ED%95%9C%20%EA%B3%A0%EC%9C%A0%20%EA%B0%92%20%EA%B3%84%EC%82%B0.png)
백만 줄의 파일이 있습니다. 각 행 transactionid
에는 중복된 값이 있는 이름의 필드가 있습니다 . 내가 해야 할 일은 그것들을 명확하게 세는 것 뿐이다. 값이 몇 번이나 반복되더라도 한 번만 계산되어야 합니다.
답변1
좋아, 파일이 쉼표 구분 기호 ","로 구분된 필드가 있는 텍스트 파일이라고 가정해 보겠습니다. 어떤 필드가 'transactionid'
어디에 있는지도 알 수 있습니다 . 귀하의 'transactionid'
필드가 일곱 번째 필드라고 가정해 보겠습니다 .
awk -F ',' '{print $7}' text_file | sort | uniq -c
그러면 일곱 번째 필드에서 고유한/고유한 발생 횟수가 계산되고 결과가 인쇄됩니다.
답변2
가장 세련된 접근 방식은 아닐 수도 있지만 다음과 같이 하면 작동합니다.
awk '{print $1}' your_file | sort | uniq | wc -l
$1
구문 분석할 필드에 해당하는 숫자는 어디에 있습니까?
답변3
파일을 정렬할 필요가 없습니다.. ( uniq
파일을 정렬해야 합니다.)
이 awk 스크립트는 필드가 공백으로 구분된 첫 번째 필드라고 가정합니다.
awk 'a[$1] == "" { a[$1]="X" } END { print length(a) }' file