我已将我的nmap结果输出到名为 test.txt 的文件中,它看起来像这样:
Nmap scan report for 192.168.1.5
Host is up (0.13s latency).
PORT STATE SERVICE VERSION
23/tcp open telnet Linux telnetd
--
Nmap scan report for 192.168.1.7
Host is up (0.13s latency).
PORT STATE SERVICE VERSION
80/tcp open http Popper
--
Nmap scan report for 192.168.1.20
Host is up (0.13s latency).
PORT STATE SERVICE VERSION
110/tcp open pop3 Dove
我想使用grep和pipe从终端中的文件输出结果,格式显示结果:IP地址后跟开放端口,如下所示:
192.168.10.2
80
223
53
192.168.10.7
80
223
答案 0 :(得分:1)
你可能想要:
cat test.txt | sed 's/Nmap scan report for //' | sed '/Host is/d' | sed '/Not shown/d' | sed '/All/d' | sed '/PORT /d' | cut -f1 -d"/" | sed '/^$/d' | sed '/--/d'
nmap -F 192.168.0.1/24 > test.txt
:
cat test.txt | tail -n+3 | sed '/Nmap done/d' | awk 'NR>1{print l}{l=$0}' | sed 's/Nmap scan report for //' | sed '/Host is/d' | sed '/Not shown/d' | sed '/All/d' | sed '/PORT /d' | cut -f1 -d"/" | sed '/^$/d'
笑话。没有意义......将 nmap 与XML输出-oX
一起使用。
阅读:https://nmap.org/book/output-formats-xml-output.html
答案 1 :(得分:0)
我要做以下事情:
^
),并以' /
'结束。字符和ip是该行的最后一项($
)。grep -o
查找任何正则表达式(查看正则表达式(|
)上的OR运算符)。这会将输出减少到匹配。