Necesito borrar numerosas líneas de un archivo .log

Trabajo con archivos .log con numerosas líneas algunos hasta con 5k, utilizando el editor de texto Sublime, puedo encontrar si hay algunas palabras duplicas y reemplazarlas por nada en ese espacio, pero... Luego de eso debo de quitar espacios en blanco manualmente, también debo de eliminar uno a uno palabras que viene 1 sola vez en el texto y eso es tedioso.

¿Puede apoyarme con alguna idea?

2 Respuestas

Respuesta

Me uno a lo que te sugiere David Mendez pero si quieres algo más detallado te diría que hay varias acciones sobre las que tomar decisiones en cuanto a las herramientas/entorno que se quieren utilizar:

1. Detección de duplicados. Habría que determinar que se considera un duplicado (parece muy probable que en un archivo de más de 5000 caracteres se repita alguna palabra, por tanto habría que decidir en que casos se puede considerar que se producen duplicados). Y que herramienta se puede usar para ello. En este punto no se me ocurre ninguna, aunque no me extrañaría que Powershell pudiera ayudar en ello.

2. Una vez detectados los duplicados hay que decidir que herramienta se utiliza para sustituirlos por "nada", es decir, para eliminarlos. Se podría usar un BAT o un guión de Powershell o, como sugiere David, alguna propia de algún otro lenguaje de programación

3. Respecto a los espacios en blanco habría que decidir si quieres eliminar todos los espacios en blanco o (supongo que más probablemente) hacer que nunca haya dos espacios en blanco seguidos. Para esto seguramente también se podría usar un BAT o un Powershell o, de nuevo, seguir la sugerencia de David.

Ya nos contarás.

Por lo que veo en la respuesta a David parece que lo esencial en tu "tratamiento" es "no abrir" los archivos a modificar. No sé muy bien la razón de ese requerimiento pero solo se me ocurre que no quieras que se modifique la fecha/hora de los LOG. Cualquier tratamiento directo o indirecto (como trabajar con una copia y luego reescribir el original) modificará ese parámetro/propiedad del archivo. Pero hay herramientas, como el Attribute Manager, que pueden "editar" esos valores después del tratamiento para restaurar los valores anteriores.

Respuesta

Lee el archivo de forma secuencial, línea por línea, agarra la línea y puedes hacer un "replace" de espacios en blanco por nada y un replace de palabra clave por lo que te interesa

Todo depende el lenguaje a ocupar, pero todos tienen funciones para trabajar con archivos planos

¡Gracias!  Te explico de forma más compleja.

1. Tengo varios archivos(16) en donde se repite el mismo comando o palabra dentro de cada uno de ellos, son alrededor de 25 comandos similares en cada uno de esos (16)logs.

2. Conociendo esto, cómo se puede hacer para NO abrir cada uno de esos logs(16) e ir editandolos o borrando mejor dicho cada una de esas 25 comandos o palabras claves, me refiero.. Será que conoces de algún método para hacer un Script para eliminar masivamente esos datos NO requeridos sin necesidad de abrirlos uno a uno ?

Quedo atento

Hasta donde se me ocurre, siempre será necesario abrir o procesar cada uno de esos 16 Logs, para hacer los cambios planteados. Ahora, podrías realizarlo de forma masiva, indicando la ruta donde se almacenan y que sean trabajados 1 por vez, pero nuevamente, las posibles soluciones seria a través de algún lenguaje de programación

No conozco herramientas propias de windows, pero seguramente en Powershell debe haber alguna manera, pero igual implicaría algo de programación. Dudo que consigas una herramienta que cumpla todos tus requerimientos sin tener que hacer o armar algo previamente

¡Gracias! muchas gracias por el dato!

Saludos.-

Excelente. Espero te sirva de inspiración ;)

Solo resta que califiques mi respuesta y damos por cerrada la pregunta :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas