You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用awk/grep筛选Nmap扫描的open状态结果并保存?

提取Nmap扫描中状态为Open的结果:Grep & Awk方案(含Awk正则用法)

你的场景回顾

我正在使用nmap进行网络扫描,扫描结果如下:

Nmap scan report for 30.142.41.52
Host is up.
PORT STATE SERVICE
8080/tcp open http-proxy
Nmap scan report for 51.136.230.94
Host is up.
PORT STATE SERVICE
8080/tcp filtered http-proxy
Nmap scan report for 58.188.208.42
Host is up.
PORT STATE SERVICE
8080/tcp filtered http-proxy

我想了解如何使用grep或awk提取其中状态为“open”的结果并保存到文本文件,此前尝试过类似awk '{print $5}'的命令,同时询问在此场景下如何在awk中使用正则表达式。


一、用Grep快速提取

Grep是处理文本过滤的轻量工具,针对你的需求分两种场景:

1. 仅提取Open状态的端口行

直接过滤包含open的行,并重定向到目标文件:

grep "open" your_nmap_scan.txt > open_ports_only.txt

2. 提取包含对应主机IP的完整记录

如果需要关联主机IP和Open端口,利用Nmap的输出结构(主机行在端口行前3行),用-B3参数显示匹配行的前3行:

grep -B3 "open" your_nmap_scan.txt > open_hosts_full.txt

-B3表示显示匹配行之前3行,刚好包含主机IP行、主机状态行和端口表头,让结果更完整可读。


二、用Awk灵活处理(含正则用法)

Awk擅长结构化文本处理,先解决你之前awk '{print $5}'无效的问题:你当前的扫描结果里,端口行只有3个字段(8080/tcp是$1,open是$2,http-proxy是$3),$5根本不存在,所以输出为空。以后可以用awk '{print NR, $0, NF}'查看行号、内容和字段数,快速定位字段位置。

1. 基础提取:精确匹配Open状态

直接匹配第二列(状态列)为open的行:

awk '$2 == "open"' your_nmap_scan.txt > open_ports_awk.txt

2. Awk中使用正则表达式

Awk用~符号表示匹配正则,正则内容放在//之间。比如要精确匹配状态为open(避免误匹配包含open的其他字符串),可以用锚点正则:

awk '$2 ~ /^open$/ {print $0}' your_nmap_scan.txt > open_ports_regex.txt
  • /^open$/:^表示字段开头,$表示字段结尾,确保只匹配完全等于open的状态值。
  • 如果要匹配包含open的任意状态(比如open|filtered这种特殊场景),可以简化为/open/。

3. 进阶:提取主机IP+Open端口的关联记录

利用Nmap的输出结构(主机行以Nmap scan report for开头),先记录当前主机IP,再输出对应Open端口:

# 精确匹配版本
awk '/Nmap scan report for/ {ip=$NF} $2 == "open" {print ip, $0}' your_nmap_scan.txt > open_host_details.txt

# 正则匹配版本(替换状态判断为正则)
awk '/Nmap scan report for/ {ip=$NF} $2 ~ /^open$/ {print ip, $0}' your_nmap_scan.txt > open_host_details_regex.txt

这里/Nmap scan report for/就是一个正则匹配,用来识别主机行,然后把该行最后一个字段($NF,NF是当前行的字段总数)赋值给变量ip,当遇到Open状态的端口行时,就输出IP和端口信息,结果会是类似:30.142.41.52 8080/tcp open http-proxy,非常直观。


小提示:保存文件的注意事项

  • > filename.txt:覆盖式保存,如果文件已存在会清空原有内容。
  • >> filename.txt:追加式保存,新内容会加到文件末尾,不会覆盖原有内容。

内容的提问来源于stack exchange,提问作者Terrisa mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:53:47