我只想打印给定 gnmap 文件中的 IP 地址和打开端口字段。
主机:123.123.123.123() 端口:80/open/tcp//http?///, 443/open/tcp//https?///, 8083/closed/tcp//us-srv///, 65001 /closed/tcp///// 忽略状态:过滤(65531) 序列索引:262 IP ID 序列:随机 主机:123.123.123.124() 端口:80/open/tcp//http?///, 443/open/tcp//https?///, 10443/open/tcp//https///, 65001/close /tcp///// 忽略状态:过滤 (65531) 序列索引:262 IP ID 序列:随机 主机:123.123.123.125 () 端口:80/open/tcp//http?///, 443/open/tcp//https?///, 8083/closed/tcp//us-srv///, 8445 /open/tcp//https///, 65001/closed/tcp///// 忽略状态:过滤(65531) Seq Index:262 IP ID Seq:随机 主机:123.123.123.126 () 端口:1337/open/tcp//https?///, 8083/closed/tcp//us-srv///, 65001/closed/tcp///// 忽略状态:已过滤(65531) 序列索引:262 IP ID 序列:随机
预期输出为
123.123.123.123 80/open/tcp//http?///, 443/open/tcp//https?/// 123.123.123.124 80/open/tcp//http?///, 443/open/tcp//https?///, 10443/open/tcp//https/// 123.123.123.125 80/open/tcp//http?///, 443/open/tcp//https?///
我已经尝试了许多不同的命令,其中之一是下面的命令。
cat targets_osdetection.gnmap | awk '/open/{print $2 " " $5 " "$6 " " $7}'
但它只打印与 $Number 字段对应的字段,并且由于每个 IP 可能没有相同数量的开放端口,因此该命令效率不高。
有人可以为此提供 awk 解决方案吗?