Comment écrire script bash pour rechercher des adresses IP dans un fichier et de mettre les écrire dans un autre fichier?
Question
Je dois écrire un script bash qui prendra un fichier de sortie grepable nmap qui affiche les adresses IP avec le port 80 ouvert et copiez les adresses IP qui ont ouvert le port 80 à un autre fichier texte. La sortie ressemble à ceci:
# 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
Je suis assez nouveau pour les scripts bash donc je ne suis pas sûr où commencer avec cela. Si vous pouvez me aider avec ce script, il serait très apprécié.
La solution
peut être réduit à un appel awk:
awk '/80\/open/{print $2}' infile > iplist_port_80
Autres conseils
Utilisez grep et sed / awk
grep -e '80/open/tcp' infile | awk '{print $2}' | sort -u > outfile
serait ma première tentative.
ne pas être familier avec l'invocation nmap et le format de sortie, mais encore, cela devrait fonctionner:
nmap | grep -e 'Ports:.80\/' |sed 's/Host:.//;s/.(.*//'|sort -u > out
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow