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

目的の出力に一部の行がありません... 5番目のフィールドで実行して数字の先頭を確認し、最初の要素を/分割して印刷してみてください$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

おすすめ記事