我正在尝试获取 gnmap 文件中服务的版本。典型的一行如下所示:
主机:192.xxx()端口:21/open/tcp//ftp//HP JetDirect ftpd/、23/open/tcp//telnet//HP JetDirect 打印机 telnetd(无密码)/、80/open/tcp//http//HP-ChaiSOE 1.0(HP LaserJet http 配置)/、443/open/tcp//ssl|http//HP-ChaiSOE 1.0(HP LaserJet http 配置)/、515/open/tcp//printer///、631/open/tcp//http//HP-ChaiSOE 1.0(HP LaserJet http 配置)/、7627/open/tcp//http//HP-ChaiSOE 1.0(HP LaserJet http 配置)/、9100/open/tcp/////, 14000/open/tcp//tcpwrapped/// 序列索引:25 IP ID 序列:增量
我需要匹配特定的“开放”端口并仅打印匹配的表达式。我尝试过:
cat file | sed -n "/ 80\/open\/tcp\/\*\/\*\/\*\/\*\//p"
我需要的结果是:
80/open/tcp//http//HP-ChaiSOE 1.0 (HP LaserJet http config)/
答案1
您可以使用带有 -o(--only-matching)选项的 grep 执行相同操作:
cat teste | grep -o "80\/open\/tcp\/[^,]*"