Como eu adicionaria novos dados a um arquivo?

Como eu adicionaria novos dados a um arquivo?

Então! Eu tenho uma varredura nmap que salva a saída em um arquivo,nmapscan.txt:

sudo nmap -sP 192.168.1* > nmapscan.txt

Também tenho alguns outros comandos para limpar e salvar todas as saídas desejadas em um arquivo,livehosts.txt:

cat ./temp/nmapscan.txt | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' > ./temp/macaddresses.txt

O que salva os endereços MAC. E:

grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' ./temp/nmapscan.txt > ./temp/ipaddresses.txt

O que salva os endereços IP. E:

cat ./temp/nmapscan.txt | grep -o -P '(?<=for).*(?=.attlocal)' > ./temp/hostnames1.txt

O que salva os nomes de host. E:

cut -d' ' -f 2 ./temp/hostnames1.txt > ./temp/hostnames2.txt

O que fiz para limpar os nomes de host (desculpe, esqueci de incluir isso na postagem original)... E:

cut -d' ' -f 1 ./temp/hostnames2.txt | paste ./temp/macaddresses.txt ./temp/ipaddresses.txt - > ./temp/livehosts.txt

.. que é o produto final que combina os dados desejados e é exibido como:

xx:xx:xx:xx:xx:xx   192.168.1.1     Netgear
xx:xx:xx:xx:xx:xx   192.168.1.111   John's Toilet Cam

Quero fazer a digitalização e escrever novamente, e quero olivehosts.txtarquivo para ser mais ou menos atualizado. Basta fazer a varredura e escrever novamente, como está, sobrescrever o arquivo. E nem todos os dispositivos estão conectados em momentos diferentes.

Eu tentei:

>>

Mas isso apenas duplica os dados já existentes no arquivo.

Duplicar os dados, cortar os dados recorrentes e depois gravar em um novo arquivo seria a melhor maneira de fazer isso?

Como você faria isso? Obrigado!

Responder1

Existem muitas manipulações desnecessárias.

Em primeiro lugar, use a -oGopção (formato grepable). Isso tornará seu trabalho mais fácil. Fonte:Guia de referência do Nmap - Saída. E não há necessidade de redirecionar arquivos ( > nmapscan.txt), pois o nmap já possui uma -oNopção. Você pode registrar em um arquivo, mas ainda assim ter saída para o console.

Não tenho certeza se sua especificação de destino é legal:

nmap -sP 192.168.1*

Talvez nmaptenha conseguido interpretá-lo corretamente, AFAIK não é uma sintaxe válida.

Em vez disso, use 192.168.1.0/24ou 192.168.1.1-255(assumindo que você deseja verificar uma rede pequena com endereços 192.168.1.0 a 192.168.1.255.

Ver:Guia de referência do Nmap - Especificação de destino

informação relacionada