상태:
몇 시간 네트워크 캡처의 IP 주소와 포트를 포함하는 큰 파일 (수백만 줄)이 있습니다. 줄은 다음과 같은 형식입니다.
ip.ad.dre.ss[:port]
원하는 결과 :
로깅하는 동안받은 각 패킷에 대한 항목이 있으므로 중복 주소가 많이 있습니다. 나는 이것을 형식의 줄로 줄일 수있는 일종의 쉘 스크립트를 통해 이것을 실행할 수 있기를 원합니다.
ip.ad.dre.ss[:port] count
여기서 count
특정 주소 및 포트의 발생 횟수입니다. 특별한 작업이 필요하지 않습니다. 다른 포트를 다른 주소로 취급하십시오.
지금까지이 명령을 사용하여 로그 파일에서 모든 IP 주소를 긁습니다.
grep -o -E [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+(:[0-9]+)? ip_traffic-1.log > ips.txt
그로부터 상당히 간단한 정규식을 사용하여 내 주소로 보낸 모든 IP 주소를 긁어 낼 수 있습니다 (걱정하지 않음)
그런 다음 다음을 사용하여 고유 항목을 추출 할 수 있습니다.
sort -u ips.txt > intermediate.txt
어떻게 든 정렬로 줄 수를 집계 할 수 있는지 모르겠습니다.
-bgr
에 대한 연상 기호처럼 보이는 우연히bigger
우리가 상단에 원하는이다.