當面臨將一個大文件進行切分時,linux的split命令是很好的選擇。它包含多種參數(shù),支持按行、大小進行切分。
split命令的語法如下:
split [--help][--version][-a ][-b][-C ][-l ][要切割的文件][輸出文件名前綴]
對應(yīng)的參數(shù)描述如下:
-a, --suffix-length=N 使用的后綴長度 (默認為 2) -b, --bytes=SIZE 每個輸出文件的字節(jié)大小 -C, --line-bytes=SIZE 每個輸出文件每行的最大字節(jié)大小 -d, --numeric-suffixes 使用數(shù)字后綴代替字母后綴 -l, --lines=NUMBER 設(shè)定每個輸出文件的行數(shù) --help 顯示幫助信息 --version 顯示版本信息
下面舉幾個例子:
1)將文件splitTest.txt分割成多個文件,分割后的每個文件大小為10M。命令:
$ split -b 20m splitTest.txt $ ls splitTest.txt xaa xab xac
2)將文件splitTest.txt分割成多個文件,分割后的每個文件大小為10M。指定分割后的文件前綴位split,命令:
$ split -b 20m splitTest.txt split $ ls splitaa splitab splitac splitTest.txt
3)將文件splitTest.txt分割成多個文件,每個文件50萬行。命令:
$ wc -l splitTest.txt 1502216 splitTest.txt $ split -l 500000 splitTest.txt split $ ls splitaa splitab splitac splitad splitTest.txt
4)將文件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