$ split -l 100 input_file output_file
donde -l
es el número de líneas en cada archivo. Esto creará:
- archivo_de_salidaaa
- archivo_de_salida
- salida_archivoac
- archivo_de_salida
- ....
Puede usar la utilidad de Linux bash core split
split -b 1M -d file.txt file
Tenga en cuenta que M
o MB
Ambos están bien, pero el tamaño es diferente. MB es 1000 * 1000, M es 1024^2
Si quieres separar por líneas puedes usar -l
parámetro.
ACTUALIZAR
a=(`wc -l yourfile`) ; lines=`echo $(($a/12)) | bc -l` ; split -l $lines -d file.txt file
Otra solución sugerida por Kirill, puede hacer algo como lo siguiente
split -n l/12 file.txt
Tenga en cuenta que es l
no one
, split -n
tiene algunas opciones, como N
, k/N
, l/k/N
, r/N
, r/k/N
.
La respuesta de John no producirá archivos .txt como quiere el OP. Usar:
split -b=1M -d file.txt file --additional-suffix=.txt