Saltar al contenido

Eliminar ciertas líneas en un archivo txt a través de un archivo por lotes

Solución:

Utilice lo siguiente:

type file.txt | findstr /v ERROR | findstr /v REFERENCE

Esto tiene la ventaja de utilizar herramientas estándar en el sistema operativo Windows, en lugar de tener que buscar e instalar sed / awk / perl y demás.

Vea la siguiente transcripción para verlo en funcionamiento:

C:>type file.txt
Good Line of data
bad line of C:DirectoryERRORmyFile.dll
Another good line of data
bad line: REFERENCE
Good line

C:>type file.txt | findstr /v ERROR | findstr /v REFERENCE
Good Line of data
Another good line of data
Good line

Puede lograr la misma solución que la de @ paxdiablo usando solo findtr por sí mismo. No es necesario unir varios comandos:

findstr /V "ERROR REFERENCE" infile.txt > outfile.txt

Detalles de cómo funciona esto:

  • / v encuentra líneas que no coinciden con la cadena de búsqueda (el mismo conmutador que usa @paxdiablo)
  • si la cadena de búsqueda está entre comillas, realiza una búsqueda OR, usando cada palabra (el separador es un espacio)
  • Findstr puede tomar un archivo de entrada, no necesitas alimentarlo con el texto usando el comando “type”
  • “> outfile.txt” enviará los resultados al archivo outfile.txt en lugar de imprimirlos en su consola. (Tenga en cuenta que sobrescribirá el archivo si existe. Utilice “>> outfile.txt” en su lugar si desea agregarlo).
  • También podría considerar agregar el modificador / i para hacer una coincidencia que no distinga entre mayúsculas y minúsculas.

Si ha sed:

sed -e '/REFERENCE/d' -e '/ERROR/d' [FILENAME]

Dónde FILENAME es el nombre del archivo de texto con las líneas buenas y malas

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *