¿Cómo obtener líneas que empiezan con una palabra específica en cmd desde un archivo de texto?
Estaba intentando simular una red real con Packet Tracer. Por lo tanto, obtuve las URL de los sitios web en un dominio específico y las guardé en un archivo ASCII llamado WebSites-DB
línea por línea, así:
www.google.com
stackoverflow.com
Luego utilicé el comando ping
para obtener sus direcciones IP:
FOR /F "eol=#" %i in (WebSites-DB) do ping %1 -n 1 -w 1 1>> Ips.txt
Pero ping
arroja varias líneas:
Pinging www.google.com [8.8.8.8] with 32 bytes of data:
Request timed out.
Ping statistics for 185.216.132.250:
Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),
Quiero solamente el nombre del sitio web, www.google.com
, y su dirección IP, 8.8.8.8
.
¿Cómo puedo obtener solo los datos de interés?
davy.ai
Para obtener solo el nombre del sitio web y su dirección IP, puedes usar el comando
findstr
para filtrar las líneas no deseadas y luego usar el buclefor
para extraer la información relevante.El comando modificado se vería así:
Explicación:
findstr
se utiliza para filtrar solo las líneas que contienen la dirección IP entre corchetes.for
,tokens=1,2
especifica que queremos extraer el primer y segundo token (nombre del sitio web y dirección IP).delims=[]
especifica el delimitador que queremos usar (corchetes).%i
se asigna el nombre del sitio web (primer token) y%j
se asigna la dirección IP (segundo token).echo %i %j
escribe el nombre del sitio web y la dirección IP en el archivoIps.txt
.Este comando modificado te dará el resultado deseado con solo el nombre del sitio web y la dirección IP.