當(dāng)面臨將一個大文件進(jìn)行切分時稠通,linux的split命令是很好的選擇赠幕。它包含多種參數(shù),支持按行阳谍、大小進(jìn)行切分蛀柴。
語法:
split [--help][--version][-a ][-b][-C ][-l ][要切割的文件][輸出文件名前綴]
參數(shù):
-a, --suffix-length=N 使用的后綴長度 (默認(rèn)為 2)
-b, --bytes=SIZE 每個輸出文件的字節(jié)大小
-C, --line-bytes=SIZE 每個輸出文件每行的最大字節(jié)大小
-d, --numeric-suffixes 使用數(shù)字后綴代替字母后綴
-l, --lines=NUMBER 設(shè)定每個輸出文件的行數(shù)
--help 顯示幫助信息
--version 顯示版本信息
例子:
將文件splitTest.txt分割成多個文件,分割后的每個文件大小為10M矫夯。命令:
$ split -b 20m splitTest.txt
$ ls
splitTest.txt xaa xab xac
將文件splitTest.txt分割成多個文件鸽疾,分割后的每個文件大小為10M。指定分割后的文件前綴位split训貌,命令:
$ split -b 20m splitTest.txt split
$ ls
splitaa splitab splitac splitTest.txt
將文件splitTest.txt分割成多個文件制肮,每個文件50萬行。命令:
$ wc -l splitTest.txt
1502216 splitTest.txt
$ split -l 500000 splitTest.txt split
$ ls
splitaa splitab splitac splitad splitTest.txt
將文件splitTest.txt分割成多個文件递沪,每個文件50萬行豺鼻。指定分割后的文件后綴為數(shù)字,數(shù)字位數(shù)為3位款慨,命令:
$ wc -l splitTest.txt
1502216 splitTest.txt
$ split -l 500000 -d -a 3 splitTest.txt split
$ ls
split000 split001 split002 split003 splitTest.txt
可以使用cat命令將切分后的文件合并成新的文件:
$ cat split0* > original.txt