有個文件要處理,因為很大,所以想把它切成若干份,每份N行,以便並行處理。split命令可以將一個大文件分割成很多個小文件,有時需要將文件分割成更小的片段,為提高可讀性,生成日志等
命令格式
- -b:值為每一輸出檔案的大小,單位為 byte。
- -C:每一輸出檔中,單行的最大 byte 數。
- -d:使用數字作為后綴。
- -l:值為每一輸出檔的列數大小。
測試
環境:Centos 6.5 測試文件:test.txt(大小493257字節,行數4545行)
①按行數分割
# split -l 1000 test.txt new_test.txt //文件一共4545行,按每個文件1000行分割,那么生成5個文件
# ls new_test.txtaa new_test.txtab new_test.txtac new_test.txtad new_test.txtae test.txt //分別以a、b、c、d、e結尾
加上-d,使用數字后綴;加上--verbose,顯示分割進度(可有可無)
# split -l 1000 -d test.txt new_test.txt --verbose creating file `new_test.txt00' creating file `new_test.txt01' creating file `new_test.txt02' creating file `new_test.txt03' creating file `new_test.txt04'
# ls new_test.txt00 new_test.txt01 new_test.txt02 new_test.txt03 new_test.txt04 test.txt //結尾分別00、01、02、03、04
② 按字節大小分割
# split -b 100k -d test.txt new_test.txt //文件一共400多K,每個100K,所以分割五份
cat命令合並以上分割文件
# cat new_test.txt* > merge_file.txt
執行完畢,查看文件大小,與源文件大小一致。