Como script bash gravação para procurar IP está numa gravação de arquivo e colocá-los para outro arquivo?
Pergunta
Eu preciso escrever um script que irá tomar um arquivo de saída para o grep nmap que exibe endereços IP com a porta 80 aberta e copiar os IPs que têm a porta 80 aberta para outro arquivo de texto. A saída é semelhante a esta:
# 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
Eu sou bastante novo para bash script para que eu não tenho certeza por onde começar com isso. Se você pode me ajudar com este script que seria muito apreciado.
Solução
este pode ser reduzido a uma chamada awk:
awk '/80\/open/{print $2}' infile > iplist_port_80
Outras dicas
Use grep e sed / awk
grep -e '80/open/tcp' infile | awk '{print $2}' | sort -u > outfile
seria minha primeira tentativa.
não estar familiarizado com a invocação nmap e formato de saída, mas ainda assim, isso deve funcionar:
nmap | grep -e 'Ports:.80\/' |sed 's/Host:.//;s/.(.*//'|sort -u > out
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow