$ split -l 100 input_file output_file
wobei -l ist die Anzahl der Zeilen in jeder Datei. Dadurch wird Folgendes erstellt:
- output_fileaa
- output_fileab
- output_fileac
- output_filead
- ...
Sie können das Linux-Bash-Core-Dienstprogramm split verwenden
split -b 1M -d file.txt file
Beachten Sie, dass M oder MB Beide sind OK, aber die Größe ist unterschiedlich. MB ist 1000 * 1000, M ist 1024^2
Wenn Sie nach Zeilen trennen möchten, können Sie -l verwenden Parameter.
AKTUALISIEREN
a=(`wc -l yourfile`) ; lines=`echo $(($a/12)) | bc -l` ; split -l $lines -d file.txt file
Eine andere Lösung, wie von Kirill vorgeschlagen, Sie können so etwas wie das Folgende tun
split -n l/12 file.txt
Beachten Sie, dass dies l ist nicht one , split -n hat einige Optionen, wie N , k/N , l/k/N , r/N , r/k/N .
Johns Antwort erzeugt keine .txt-Dateien, wie es das OP wünscht. Verwendung:
split -b=1M -d file.txt file --additional-suffix=.txt