linux大文件拆分split

环境:centos

1、split帮助查看

用法:split[OPTION]。。。[输入[前缀]]
将固定大小的片输出到PREFIXaa,PREFIXab,…;默认值大小为1000行,默认前缀为“x”。没有输入,或者当输入时是-,读取标准输入。

长选项的强制参数对于短选项也是必需的。
  -a、 --suffix=N                  生成长度为N的后缀(默认为2)
       --additional-suffix=suffix  在文件名后附加一个后缀
  -b、 --bytes=SIZE                放入每个输出文件的大小字节
  -C、 --line-bytes=size           每个输出文件最多放入行的大小字节
  -d、 --numeric-suffixes[=FROM]   使用数字后缀而不是字母后缀;从更改起始值(默认值0)
  -e、 --elide-empty-files         不生成带有“-n”的空输出文件
       --filter=command            写入shell命令;文件名为$file
  -l、 --lines=NUMBER              放入每个输出文件的NUMBER行
  -n、 --number=CHUNKS             生成CHUNKS输出文件;参见下面的解释
  -u、 --unbuffered                没有缓冲立即用“-n r/…”将输入复制到输出
       --verbose                   打印诊断就在每个诊断之前输出文件已打开
       --help                      显示此帮助并退出
       --version                   输出版本信息并退出

SIZE是一个整数和可选单位(例如:10M是10*1024*1024)。单位是K,M,G,T,P,E,Z,Y(1024的幂)或KB,MB。。。(1000的幂)。

块可以是:
  N     根据输入的大小分成N个文件
  K/N   输出到标准输出
  l/N   拆分为N个文件而不拆分行
  l/K/N 不分行输出N的第K位到标准输出
  r/N   类似于“l”,但使用循环分布
  r/K/N 只将N的Kth输出到标准输出

2、最简单使用

[root@deam a]# split file.txt            #默认按1000行拆分成以x开头的多个文件
[root@deam a]# ll
total 124
-rw-r--r-- 1 root root 48894 Aug  5 20:41 file.txt
-rw-r--r-- 1 root root  3893 Aug  5 21:28 xaa
-rw-r--r-- 1 root root  5000 Aug  5 21:28 xab
-rw-r--r-- 1 root root  5000 Aug  5 21:28 xac

2、指定输出文件格式

[root@deam a]# split file.txt -d -a 2 out  #指定输出文件格式 out开头 -d指定数字开始‘00’ -a 指定两位
[root@deam a]# ll
total 124
-rw-r--r-- 1 root root 48894 Aug  5 20:41 file.txt
-rw-r--r-- 1 root root  3893 Aug  5 21:32 out00
-rw-r--r-- 1 root root  5000 Aug  5 21:32 out01
-rw-r--r-- 1 root root  5000 Aug  5 21:32 out02

3、指定分割行数和输出文件格式

[root@deam a]# split -l 2000 file.txt -d -a 2 out  #指定拆分行数 -l 指定 2000行
[root@deam a]# ll
total 108
-rw-r--r-- 1 root root 48894 Aug  5 20:41 file.txt
-rw-r--r-- 1 root root  8893 Aug  5 21:35 out00
-rw-r--r-- 1 root root 10000 Aug  5 21:35 out01
[root@deam a]# cat out00|wc -l                     #统计文件2000行
2000

4、按指定大小进行拆分

[root@deam a]# split -b 10k file.txt               #每10k拆分成一个文件,默认不加单位就是字节,也可以带单位比如KB,MB等
[root@deam a]# ll
total 104
-rw-r--r-- 1 root root 48894 Aug  5 20:41 file.txt
-rw-r--r-- 1 root root 10240 Aug  5 21:39 xaa
-rw-r--r-- 1 root root 10240 Aug  5 21:39 xab

5、对文件的合并

[root@deam a]# cat xa* >> file.txt               #将拆分的所有文件合并成一个文件

 

posted @ 2020-08-05 21:52  苍茫宇宙  阅读(793)  评论(0编辑  收藏  举报