nmap 스캔 필터링 및 ip:port 형식 출력

nmap 스캔 필터링 및 ip:port 형식 출력
Host: 1.1.1.1 ()  Ports: 8080/open/tcp//http-proxy/// Ignored State: filtered (28)
Host: 2.2.2.2 ()  Ports: 8888/open/tcp//sun-answerbook/// Ignored State: closed (28)
Host: 3.3.3.3 ()  Ports: 1263/open/tcp/////, 1499/open/tcp//fhc///, 2301/open/tcp//compaqdiag///, 3124/open/tcp/////, 3127/open/tcp/////, 3128/open/tcp//squid-http///, 3382/open/tcp/////, 4480/open/tcp//proxy-plus///, 4816/open/tcp/////, 6588/open/tcp//analogx///, 7212/open/tcp/////, 8000/open/tcp//http-alt///, 8080/open/tcp//http-proxy/// Ignored State: closed (4)

원하는 출력은

1.1.1.1:8080
2.2.2.2:8888
3.3.3.3:1263
3.3.3.3:1499

IP 대 포트 비율이 1:1인 경우 어떻게 해야 하는지 알고 있지만 단일 IP가 여러 포트를 열 수 있습니다. 각 부분에 대한 적절한 정규식을 사용하여 파일의 출력을 grep하고 배열에 넣습니다. 더 쉬운 방법이 있습니까? nix에서의 내 텍스트 조작 기술은 매우 초보적입니다.

답변1

원하는 출력에서 ​​일부 행이 누락된 것 같습니다... 다섯 번째 필드에서 실행하여 숫자의 시작 부분을 확인하고 /첫 번째 요소를 분할하여 인쇄해 보십시오 $2.

awk '{for (i=5; i<=NF; i++) if ($i ~ /^[0-9]/) {split ($i, T, "/"); print $2 ":" T[1]}}' file
1.1.1.1:8080
2.2.2.2:8888
3.3.3.3:1263
3.3.3.3:1499
3.3.3.3:2301
3.3.3.3:3124
3.3.3.3:3127
3.3.3.3:3128
3.3.3.3:3382
3.3.3.3:4480
3.3.3.3:4816
3.3.3.3:6588
3.3.3.3:7212

관련 정보