Eliminación de algunas líneas en un archivo de texto
Resuelto
Cybmatt
Mensajes publicados
4
Estado
Miembro
-
Cybmatt Mensajes publicados 4 Estado Miembro -
Cybmatt Mensajes publicados 4 Estado Miembro -
Hola,
Tengo un procesamiento automatizado que implementar con un archivo batch de Windows.
Aquí está mi problemática:
Tengo un conjunto de archivos planos (formatos .csv), cuyo separador es el punto y coma. Todos tienen la misma estructura:
- una primera línea cuyos primeros tres caracteres son "00;"
- n líneas cuyos primeros tres caracteres son "01;"
Ejemplo:
00;20001;ABC;20190617;1224;19;01;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
01;123456789;20190617;ABCD;81257033099;20001201906170000001;EUR;1906;25;FR;09055478004;05;1;ZV13;717409;1;1912875;;;;;16;;;;;;;0000048235;;;;;;;;;;;;;;;;1;;;;;;;;;;;21;1;ZPCC;1912875;EUR;XXX AABB
01;123456789;20190617;ABCD;81257033099;20001201906170000002;EUR;1906;25;FR;09045845016;05;1;ZV13;717409;1;1912875;;;;;16;;;;;;;0000048235;;;;;;;;;;;;;;;;1;;;;;;;;;;;21;1;ZPCC;1912875;EUR;XXX CC DD
Mi objetivo es:
- reunir todos los archivos csv en un solo archivo csv llamado "FVMA_global.csv"
- eliminar en este último todas las líneas que comienzan por "00;" creando un archivo limpio llamado "FVMA_global_<fechadeldia>.csv"
Para la primera etapa, sin problema, he utilizado este código:
Eso me da bien un archivo llamado "FVMA_global.csv"
No logro realizar la segunda parte del procesamiento. Supongo que hay que usar un bucle "for /f" también, pero no logro hacer pruebas sobre los 3 primeros caracteres, y hacer que, en función de esa prueba, se coloque el contenido de la línea analizada en un nuevo archivo.csv (que es el archivo final, limpiado de las líneas en "00;")
Muchas gracias de antemano por vuestra valiosa ayuda.</fechadeldia>
Tengo un procesamiento automatizado que implementar con un archivo batch de Windows.
Aquí está mi problemática:
Tengo un conjunto de archivos planos (formatos .csv), cuyo separador es el punto y coma. Todos tienen la misma estructura:
- una primera línea cuyos primeros tres caracteres son "00;"
- n líneas cuyos primeros tres caracteres son "01;"
Ejemplo:
00;20001;ABC;20190617;1224;19;01;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
01;123456789;20190617;ABCD;81257033099;20001201906170000001;EUR;1906;25;FR;09055478004;05;1;ZV13;717409;1;1912875;;;;;16;;;;;;;0000048235;;;;;;;;;;;;;;;;1;;;;;;;;;;;21;1;ZPCC;1912875;EUR;XXX AABB
01;123456789;20190617;ABCD;81257033099;20001201906170000002;EUR;1906;25;FR;09045845016;05;1;ZV13;717409;1;1912875;;;;;16;;;;;;;0000048235;;;;;;;;;;;;;;;;1;;;;;;;;;;;21;1;ZPCC;1912875;EUR;XXX CC DD
Mi objetivo es:
- reunir todos los archivos csv en un solo archivo csv llamado "FVMA_global.csv"
- eliminar en este último todas las líneas que comienzan por "00;" creando un archivo limpio llamado "FVMA_global_<fechadeldia>.csv"
Para la primera etapa, sin problema, he utilizado este código:
FOR /f %%i in ('dir /B *.csv') do ( IF %%i NEQ FVMA_global.csv type %%i>>FVMA_global.csv ) Eso me da bien un archivo llamado "FVMA_global.csv"
No logro realizar la segunda parte del procesamiento. Supongo que hay que usar un bucle "for /f" también, pero no logro hacer pruebas sobre los 3 primeros caracteres, y hacer que, en función de esa prueba, se coloque el contenido de la línea analizada en un nuevo archivo.csv (que es el archivo final, limpiado de las líneas en "00;")
Muchas gracias de antemano por vuestra valiosa ayuda.</fechadeldia>
Enlaces relacionados:
- script para eliminar archivos recientes
- Contar el número de líneas en un archivo de texto.
- Eliminar un carácter en un archivo de texto con .bat
- Contar el número de líneas en un archivo
- Batch: Incluir el contenido de un archivo de texto en una variable.
- BATCH Eliminación de subarchivos/carpetas en un directorio