大日志文件的拆分split

1、split命令解析


```bash

```bash
用法: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输出到标准输出

1、简单使用

[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

2、指定拆分文件格式名称

[root@deam a]# split file.txt -d -a 2 out  #指定输出文件格式 out开头-d 指定数字开始 -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      #将拆分的所有文件合并成一个文件
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页