Centos文件切割利器_split命令及cat命令合并文件

有个文件要处理,因为很大,所以想把它切成若干份,每份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

执行完毕,查看文件大小,与源文件大小一致。