Matt Pascoe
Matt Pascoe

Reputation: 8991

How to write bash script to search for IP's in a file and put write them to another file?

I need to write a bash script that will take a grepable nmap output file that displays IP addresses with port 80 open and copy the IPs that have port 80 open to another text file. The output looks similar to this:

# 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

I am fairly new to bash scripting so I am not sure where to start with this. If you can help me with this script it would be much appreciated.

Upvotes: 0

Views: 1875

Answers (3)

kon
kon

Reputation: 554

this can be reduced to an awk call:

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

Upvotes: 2

catwalk
catwalk

Reputation: 6476

not being familiar with nmap invocation and output format, but still, this should work:

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

Upvotes: 1

retracile
retracile

Reputation: 12339

Use grep and sed/awk

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

would be my first attempt.

Upvotes: 1

Related Questions