로그에 다음과 유사한 줄이 있습니다.
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가 .uniq
sort
1
답변1
맨페이지 에서 uniq
:
DESCRIPTION
Discard all but one of successive identical lines from INPUT (or standard input), writing to OUTPUT (or standard output).
여기서 중요한 단어는 "성공적"입니다. 스트림의 어떤 지점에서도 중복 항목을 검색하지 않고 바로 다음에 나오는 항목만 검색합니다. 정렬하면 모든 중복 항목이 서로 인접하게 되므로 제거(및 계산)할 수 있습니다.