$ split -l 100 input_file output_file
dove -l è il numero di righe in ogni file. Questo creerà:
- output_fileaa
- output_fileab
- output_fileac
- output_filead
- ....
Puoi usare l'utility linux bash core split
split -b 1M -d file.txt file
Nota che M o MB entrambi sono OK ma la dimensione è diversa. MB è 1000 * 1000, M è 1024^2
Se vuoi separare per linee puoi usare -l parametro.
AGGIORNA
a=(`wc -l yourfile`) ; lines=`echo $(($a/12)) | bc -l` ; split -l $lines -d file.txt file
Un'altra soluzione suggerita da Kirill, puoi fare qualcosa di simile
split -n l/12 file.txt
Nota che è l non one , split -n ha alcune opzioni, come N , k/N , l/k/N , r/N , r/k/N .
La risposta di John non produrrà file .txt come vuole l'OP. Usa:
split -b=1M -d file.txt file --additional-suffix=.txt