Linux下大文件的切割与合并

890 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

在Linux系统下,有时因为网络传输的限制,我们需要将大文件切割成若干小文件进行传输,传输完成后再进行合并。

文件切割

使用split命令实现对大文件的切割。

语法格式

split [-<行数>][-a][-b <字节>][-C <字节>][-d][-l <行数>] [要切割的文件][输出文件名]

常用参数说明如下:

  • -<行数>:指定每多少行切成一个小文件
  • -a: 指定输出文件名的后缀长度(默认为2个)
  • -b<字节>:指定每多少字节切成一个小文件
  • -C<字节>:与参数-b相似,但是在切割时将尽量维持每行的完整性
  • -d:指定输出文件名的后缀用数字代替
  • -l:指定每多少行切成一个小文件

详细帮助信息可以执行split --help查看。

使用实例

使用指令split将文件test.sh每6行切割成一个文件,命令如下:

$ split -6 test.sh test/test_ 

执行完毕后,在./test目录下会生成很多小文件,而在这些小文件中,每个文件都只有6行内容:

test_aa  test_ab  test_ac  test_ad  test_ae  test_af  test_ag  test_ah  ·······

文件合并

使用cat命令可以实现多个小文件的合并。

语法格式

cat [-options] filename

常用参数说明如下:

  • -n:由1开始对所有输出的行数编号
  • -b:和-n相似,只不过对于空白行不编号
  • -s:当遇到有连续两行以上的空白行,就代换为一行的空白行

使用实例

对上面切割的小文件进行合并:

cat test_* > test.sh

在linux系统下,大文件的切割和合并都非常方便。

原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~

最后,感谢女朋友在工作和生活中的包容、理解与支持 !