Título: eliminar filas vacias txt (con columnas) Publicado por: choporrue en 17 Septiembre 2014, 09:40 am Buenos días,
Tengo varios ficheros txt en una carpeta con la siguiente estructura: Código: XXX XX XXXXXX XX El caso es que los necesito unir. He hecho esto mediante un comando simple: Código
El caso es que me junta los archivos pero me deja un monton de filas en blanco, que no necesito. Para ello he creado otro fichero batch (gracias grandísimo post de Leo Gutiérrez "acciones sobre archivos de texto) con el siguiente código: Código El resultado que me da en file2.txt es que efectivamente me quita las filas vacias, pero también se carga todas las columnas salvo la primera quedando el fichero asi: Código: XXX ¿Cómo puedo unir los ficheros con todos los datos? puedo hacer las dos fases (unir ficheros de una carpeta y eliminar las filas en blanco) con un solo batch ? Muchas gracias y saludos. Título: Re: eliminar filas vacias txt (con columnas) Publicado por: Eleкtro en 17 Septiembre 2014, 10:58 am ¿Cómo puedo unir los ficheros con todos los datos? El For solo está procesando la primera palabra de cada linea. Modificalo de esta manera: Código
Saludos Título: Re: eliminar filas vacias txt (con columnas) Publicado por: choporrue en 17 Septiembre 2014, 11:42 am Hola!
Ante todo, muchas gracias por la rápida respuesta. He probado tu solución y en el fichero resultante (file2.txt), las filas que antes aparecían en blanco han sido sustituidas por la expresión "ECHO est desactivado". el código con tu retoque lo tengo así: Código Muchas gracias de nuevo! Saludos. Título: Re: eliminar filas vacias txt (con columnas) Publicado por: Eleкtro en 17 Septiembre 2014, 13:32 pm He probado tu solución y en el fichero resultante (file2.txt), las filas que antes aparecían en blanco han sido sustituidas por la expresión "ECHO est desactivado". Los parámetros que le añadi al For para corregirlo, toman la linea entera, y excluyen lineas en blanco. Si no te funciona el código, quizás exista algun caracter ilegal en dichas filas, quizás hayan lineas que solo contengan espacios (eso no se considera una linea vacia), quizás la codificación del archivo no sea la apropiada, o quizás pueda ser causa de otro motivo. Utiliza el punto en el comando Echo para imprimir lineas en blanco o con espacios: Código Muestra el contenido de 'file.txt'. Saludos Título: Re: eliminar filas vacias txt (con columnas) Publicado por: choporrue en 17 Septiembre 2014, 16:09 pm Gracias por tu respuesta de nuevo.
Me parece que, efectivamente, lo que ocurre es que hay líneas en blanco pero no vacias (contienen espacios). Existe alguna forma de hacerlo? Subo el archivo a Dropbox por si eso ayudase: https://www.dropbox.com/s/ilu87uwip8i57fy/TEST.rar?dl=0 Gracias de nuevo por la ayuda! Saludos. Título: Re: eliminar filas vacias txt (con columnas) Publicado por: Eleкtro en 17 Septiembre 2014, 16:57 pm Existe alguna forma de hacerlo? Te diría que si, utilizando la expresión regular "^\s+" con el comando Findstr /V /R "expresión" en windows 7 debería funcionar, pero al parecer no me reconoce bien la expresión en Win8.1 (tengo el comando externo Findstr bugueado). De todas formas, un RegEx sería un proceso muy lento para el pobre Batch, mejor te escribo un código equivalente en VbScript: Script.vbs Código
Si no te sirve y lo necesitas en Batch, comenta y te propondré soluciones alternativas (a un regex) en dicho lenguaje. Saludos! Título: Re: eliminar filas vacias txt (con columnas) Publicado por: choporrue en 18 Septiembre 2014, 00:13 am Absolutamente brillante!
El código en VBS funciona de lujo! Ya para nota, podrá unir los ficheros y eliminar las filas en un solo proceso? Enorme tu ayuda! Saludos. |