$ split -l 100 input_file output_file
où -l
est le nombre de lignes dans chaque fichier. Cela créera :
- output_fileaa
- output_fileab
- output_fileac
- output_filead
- ....
Vous pouvez utiliser l'utilitaire linux bash core split
split -b 1M -d file.txt file
Notez que M
ou MB
les deux sont OK mais la taille est différente. Mo est 1000 * 1000, M est 1024^2
Si vous voulez séparer par des lignes, vous pouvez utiliser -l
paramètre.
MISE À JOUR
a=(`wc -l yourfile`) ; lines=`echo $(($a/12)) | bc -l` ; split -l $lines -d file.txt file
Une autre solution suggérée par Kirill, vous pouvez faire quelque chose comme ce qui suit
split -n l/12 file.txt
Notez que c'est l
pas one
, split -n
a quelques options, comme N
, k/N
, l/k/N
, r/N
, r/k/N
.
La réponse de John ne produira pas de fichiers .txt comme le souhaite l'OP. Utiliser :
split -b=1M -d file.txt file --additional-suffix=.txt