首页 > 解决方案 > 如何在输出文件中包含来自 Nmap 脚本的注释

问题描述

可能有更好的方法来做到这一点,但我有一个名为“list.txt”的输入文件,用于我的 Nmap 扫描的 IP 地址,如下所示:

192.168.1.1   #Router
192.168.1.120 #PC
192.168.1.52  #Phone

然后我使用 Nmap 扫描并使用以下命令输出到文件:

nmap -iL list.txt >> output.txt

此外,我使用 sed 使“output.txt”看起来像这样:

Host: 192.168.1.1       Status: Up
Host: 192.168.1.120     Status: Down
Host: 192.168.1.52      Status: Up

我想包含输入“list.txt”文件中的注释,但找不到可以做到这一点的方法。理想的“output.txt”应该是这样的:

Host: 192.168.1.1       Status: Up    #Router
Host: 192.168.1.120     Status: Down  #PC
Host: 192.168.1.52      Status: Up    #Phone

有没有办法将“list.txt”中的评论包含在“output.txt”中?

标签: linuxbashnmap

解决方案


另一种选择是使用原始文件和新的 output.txt 文件运行 awk:

awk 'NR==FNR { ip[$1]=$2;next } { printf "%s\t%s\n",$0,ip[$2] }' list.txt output.txt > finaloutput.txt

处理第一个 (NR==FNR) 并创建一个名为 IP 的数组,其中 IP 地址(第一个空格分隔的字段)作为键,注释为值。然后在处理第二个文件 (output.txt) 时,打印该行,加上从 ip 数组中获取的 IP 的注释。


推荐阅读