Awk 需要从扫描报告中获取特定数据块

Awk 需要从扫描报告中获取特定数据块,awk,sed,grep,report,nmap,Awk,Sed,Grep,Report,Nmap,我在一个大型ish网络上完成了nmap扫描,现在我正在尝试组织数据 我的报告是以下方面的结果: nmap -A -p 0-65535 -iL [filename] -oX [filename] 所以我现在要做的是提取我扫描的每个IP地址的结果。我在这里找到了另一篇文章,其中的解决方案是使用awk: awk 'BEGIN {RS="< host ";} /^starttime/ {print RS $0;}' [filename] awk'BEGIN{RS=“

我在一个大型ish网络上完成了nmap扫描,现在我正在尝试组织数据

我的报告是以下方面的结果:

nmap -A -p 0-65535 -iL [filename] -oX [filename]
所以我现在要做的是提取我扫描的每个IP地址的结果。我在这里找到了另一篇文章,其中的解决方案是使用awk:

awk 'BEGIN {RS="< host ";} /^starttime/ {print RS $0;}' [filename]
awk'BEGIN{RS=“
这对我来说不起作用,因为它没有在第一个块后停止,而是直接在报告中运行。我当然意识到这是因为在范围内所有IP地址的输出中都可以找到“ 我是否需要运行nmap报告并提取每个IP地址的扫描报告并将其保存在单独的文件中?当然,这样做需要一个For循环。。。一旦一个块的提取和写入被计算出来,那么就可以使用for循环来扩展它(我认为)

或者,是否有人,从经验或纯粹的灵感,有一个更完善的解决方案/建议


在此问题上的任何帮助都将不胜感激。

不要使用
awk
解析XML数据。Nmap有很好的文档记录,其中有用于它的解析器(也作为Python 2库安装,并内置了解析器),或者您可以使用。

显示示例输入和该示例输入所需的输出。我插入示例输入有点困难,因为编辑报告将花费大量时间。该报告是xml格式的,列出了主机名、端口扫描结果、操作系统名称、运行时间、上次重新启动信息。并非所有IP都具有相同的数据量,但它们都具有相同的类别…示例输出:我想获取主机A的所有扫描信息,比如IP地址192.168.1.100,并将其写入专用文件。那么我想对主持人B做同样的事情。。。那么主持人C。。。我可能会有300个文件,每个文件都包含特定主机的状态。如果我在excel中这样做,我希望每个IP都有一个特定的选项卡,该选项卡包含相关信息。如果没有示例数据,我只能建议使用XML解析器。示例:
wget-O-http://www.nu.nl/rss/Algemeen 2 > /DEV/NULL XMLSTARTEL SET-T-V/RSS/通道/项/标题< /代码>是否有任何用于C++分析NMAP输出的库?@ Mayuri,我不知道其中一个。有人问过这个问题,所以如果你愿意的话,你可以投票表决或者悬赏。现在没有答案。