Dividir un archivo .txt por lotes
Mael730
Mensajes publicados
50
Estado
Miembro
-
cs-bilou Mensajes publicados 836 Estado Miembro -
cs-bilou Mensajes publicados 836 Estado Miembro -
Hola,
Soy novato en batch y estoy atascado en un problema: tengo un archivo .txt que contiene un número arbitrario de líneas (por ejemplo, 135000) y me gustaría dividir este archivo en x archivos que tengan el mismo nombre +/- un número (para diferenciarlos) conteniendo cada uno 40,000 líneas.
¿Es factible hacerlo en batch?
Gracias de antemano
Saludos
Soy novato en batch y estoy atascado en un problema: tengo un archivo .txt que contiene un número arbitrario de líneas (por ejemplo, 135000) y me gustaría dividir este archivo en x archivos que tengan el mismo nombre +/- un número (para diferenciarlos) conteniendo cada uno 40,000 líneas.
¿Es factible hacerlo en batch?
Gracias de antemano
Saludos
Configuración: Windows XP Firefox 3.5.7
3 respuestas
-
Aquí tienes la traducción:
@echo off setlocal enableDelayedExpansion set nbrLigneMax=4 Set nbrLigne=0 set nbrFile=0 for /f "delims=""" %%i in ('type "In.txt"') do ( if !nbrLigne!==%nbrLigneMax% set /a nbrFile=!nbrFile!+1& set nbrLigne=0 echo %%i>>File-!nbrFile!.txt set /a nbrLigne=!nbrLigne!+1 ) pause
El archivo In.txt es el archivo de entrada, es decir, el archivo que deseas dividir.
La variable nbrLigneMax es el número de líneas que deseas por archivo.
Bilou
--
Hay días en los que no debes buscarme.
¡Y hay días todos los días! -
Et voilà :
@echo off setlocal enableDelayedExpansion set nbrLigneEnteteMax=14 set nbrLigneEntete=0 for /f "delims=" %%i in ('type "In.txt"') do ( if !nbrLigneEntete! LSS %nbrLigneEnteteMax% echo %%i>>"EnTete.txt" set /a nbrLigneEntete+=1 ) set nbrLigneMax=4 Set nbrLigne=4 set nbrFile=0 for /f "delims=" %%i in ('type "In.txt"') do ( if !nbrLigne!==%nbrLigneMax% ( set /a nbrFile+=1 set nbrLigne=0 for /f "delims=" %%j in ('type "EnTete.txt"') do echo %%j>>"File-!nbrFile!.txt") echo %%i>>"File-!nbrFile!.txt" set /a nbrLigne+=1 ) del /f /s /q "EnTete.txt" > NUL pause
Bilou.
--
Hay días que no hay que buscarme.
¡Y hay días todos los días! -
Gracias, funciona perfecto!
Tengo otra pregunta:
Necesitaría que el batch copie el encabezado contenido en el archivo In.txt en todos los archivos File-* generados.
P.D.: Este encabezado tiene 14 líneas.
Gracias de antemano.