이 명령이 uniq 개수를 기준으로 정렬되지 않는 이유는 무엇입니까?

이 명령이 uniq 개수를 기준으로 정렬되지 않는 이유는 무엇입니까?

내 로그에 다음과 유사한 줄이 있습니다.

2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.11:61618) is not a trusted source.
2015/11/02-07:55:40.515 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.11:51836) is not a trusted source.
2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.10:61615) is not a trusted source.
2015/11/02-07:55:40.515 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.10:51876) is not a trusted source.
2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.10:61614) is not a trusted source.
2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.15:61614) is not a trusted source.
2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.15:61618) is not a trusted source.
2015/11/02-07:55:39.735 INFO failed with ERR_AUTHORIZATION_REQUIRED.  (10.10.10.15:61613) is not a trusted source.

그래서 각 고유 IP의 개수(정렬)를 얻기 위해 다음 명령을 시도했습니다.

grep ERR_AUTHORIZATION_REQUIRED file.log | awk '{print $6}' | cut -s -d ':' -f1 | tr -d '(' | sort | uniq -c

내가 얻는 결과는 다음과 유사합니다.

3 10.10.10.10
2 10.10.10.11
3 10.10.10.15

따라서 적용하기 전에 IP를 정렬하는 것과 비슷하지만 (명령이 주어지면 의미가 있음) 및 명령을 uniq -c바꾸면 각 IP에 개수가 인쇄됩니다 .uniqsort1

답변1

uniq맨페이지 에서 :

DESCRIPTION
     Discard all but one of successive identical lines from INPUT (or standard input), writing to OUTPUT (or standard output).

여기서 핵심 단어는 "지속적"입니다. 스트림의 어느 지점에서든 중복 항목을 검색하지 않고 바로 다음에 나오는 중복 항목만 검색합니다. 정렬하면 모든 중복 항목이 서로 옆에 배치되어 제거(및 계산)될 수 있습니다.

관련 정보