我有一个大的(按行数)纯文本文件,我想把它分成更小的文件,也按行数。因此,如果我的文件有大约2M行,我想把它分成10个包含200k行的文件,或100个包含20k行的文件(加上一个文件;是否能被均匀整除并不重要)。
我可以在Python中相当容易地做到这一点,但我想知道是否有任何一种忍者方法来使用Bash和Unix实用程序(而不是手动循环和计数/分区行)。
我有一个大的(按行数)纯文本文件,我想把它分成更小的文件,也按行数。因此,如果我的文件有大约2M行,我想把它分成10个包含200k行的文件,或100个包含20k行的文件(加上一个文件;是否能被均匀整除并不重要)。
我可以在Python中相当容易地做到这一点,但我想知道是否有任何一种忍者方法来使用Bash和Unix实用程序(而不是手动循环和计数/分区行)。
当前回答
将“file.txt”文件拆分为10,000行文件:
split -l 10000 file.txt
其他回答
使用split命令:
split -l 200000 mybigfile.txt
你也可以使用AWK:
awk -vc=1 'NR%200000==0{++c}{print $0 > c".txt"}' largefile
将“file.txt”文件拆分为10,000行文件:
split -l 10000 file.txt
Use:
sed -n '1,100p' filename > output.txt
这里,1和100是您将在output.txt中捕获的行号。
将一个大的文本文件分成1000行的小文件:
分裂<文件> -l 1000
使用实例将一个较大的二进制文件分割为多个10M大小的小文件。
split <file> -b
将多个文件合并为一个文件:
Cat x* > <文件>
拆分一个文件,每个拆分有10行(除了最后一个拆分):
Split -l 10文件名
将一个文件拆分为5个文件。文件被分割,使得每个分割都有相同的大小(除了最后一个分割):
Split -n 5文件名
每次分割一个512字节的文件(除了最后一次分割;千字节使用512k,兆字节使用512m):
Split -b 512 filename
拆分文件,每次拆分最多512字节,不断行:
split -C 512 filename