¿Cómo haría para agregar nuevos datos a un archivo?

¿Cómo haría para agregar nuevos datos a un archivo?

¡Entonces! Tengo un escaneo de nmap que guarda el resultado en un archivo,nmapscan.txt:

sudo nmap -sP 192.168.1* > nmapscan.txt

También tengo algunos otros comandos para limpiar y guardar todos los resultados deseados en un archivo,livehosts.txt:

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

Lo que guarda las direcciones mac. Y:

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

Lo que guarda las direcciones IP. Y:

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

Lo que guarda los nombres de host. Y:

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

Lo cual hice para limpiar los nombres de host (lo siento, olvidé incluir esto en la publicación original)... Y:

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

.. que es el producto final que combina los datos deseados y se muestra 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

Quiero hacer el escaneo y escribir, de nuevo, y quiero ellivehosts.txtarchivo para estar más o menos actualizado. Simplemente haciendo el escaneo y escribiendo nuevamente, tal cual, escribe sobre el archivo. Y no todos los dispositivos están conectados en momentos diferentes.

He intentado:

>>

Pero eso sólo duplica los datos que ya están en el archivo.

¿Duplicar los datos, cortar los datos recurrentes y luego escribir en un archivo nuevo sería la mejor manera de hacerlo?

¿Cómo harías para hacer esto? ¡Gracias!

Respuesta1

Hay demasiadas manipulaciones que son innecesarias.

En primer lugar, utilice la -oGopción (formato grepable). Esto facilitará su trabajo. Fuente:Guía de referencia de Nmap: salida. Y no es necesario realizar la redirección de archivos ( > nmapscan.txt) ya que nmap ya tiene una -oNopción. Puede iniciar sesión en un archivo pero aún tener salida a la consola.

No estoy seguro de que su especificación objetivo sea siquiera legal:

nmap -sP 192.168.1*

Quizás nmaplogré interpretarlo correctamente, AFAIK, no es una sintaxis válida.

En su lugar, utilice 192.168.1.0/24o 192.168.1.1-255(suponiendo que desee escanear una red pequeña con direcciones 192.168.1.0 a 192.168.1.255.

Ver:Guía de referencia de Nmap: especificación de destino

información relacionada