$ 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