linux下文件合并是用cat来实现,那么将大文件分割成小文件怎么办呢? 我们可以用split命令来实现,既可以指定按行分割也能指定按大小分割,非常方便实用。
- 指定行数分割
# 格式为: split [OPTION] ... [FILE] [PREFIX]
# 比如:
split -l 5 large.txt test_line_
以一个名为large.txt的文件为例,里面内容为1-10十行十个数字,运行上边代码可以得到两个文件: test_line_aa和test_line_ab,其中各有五行。最后test_line_指定了新文件的前缀,如果不给的话,那么split会自动分配一个前缀。常用x开头。
- 指定大小分割
split -b 10k large.txt test_size_
以上分割的时候后缀是以aa, ab等字母结尾,而用数字结尾会比较直观。这可以用其中的-d和-a参数进行调整。-d是指系数是数字而不是默认的字母,-a是指后边有几位数(如-a 3 指的文件后缀数字有三位)。
split -l 5 large.txt -d -a 2 test_line_
此处需要注意,MacOS中的split参数更少,比如没有-d参数,这么写会提示报错。