$ 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