如何编写bash脚本来搜索文件中的IP并将它们写入另一个文件?

时间:2009-12-03 19:24:35

标签: bash scripting ip nmap

我需要编写一个bash脚本,该脚本将采用一个grepable nmap输出文件,该文件显示端口80打开的IP地址,并将端口80打开的IP复制到另一个文本文件。输出看起来类似于:

# Nmap 4.76 scan initiated Thu Dec  3 13:36:29 2009 as: nmap -iL ip.txt -p  80 -r -R -PN --open -oA output
Host: 192.168.1.100 () Status: Up
Host: 192.168.1.100 () Ports: 80/open/tcp//http///
Host: 192.168.1.100 () Status: Up
# Nmap done at Thu Dec  3 13:36:29 2009 -- 3 IP addresses (3 hosts up) scanned in 0.28 seconds

我是bash脚本的新手,所以我不知道从哪里开始。如果你能帮助我使用这个脚本,我将不胜感激。

3 个答案:

答案 0 :(得分:2)

这可以简化为一个awk电话:

awk '/80\/open/{print $2}' infile > iplist_port_80

答案 1 :(得分:1)

使用grep和sed / awk

grep -e '80/open/tcp' infile | awk '{print $2}' | sort -u > outfile

将是我的第一次尝试。

答案 2 :(得分:1)

不熟悉nmap调用和输出格式,但仍然可以这样做:

nmap | grep -e 'Ports:.80\/' |sed 's/Host:.//;s/.(.*//'|sort -u > out