Linux split命令拆分文件详解

Linux split命令可以将一个大文件分割成指定大小的很多个小文件,并且拆分速度非常的快,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志。拆分一个1G大小的文件不到1秒的时间就可以完成,如果在Windows系统上进行操作估计会很卡很卡。

Linux split命令拆分文件详解

选项

[linuxidc@localhost ~]$ split --help
用法:split [选项]... [输入 [前缀]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is 'x'.  With no INPUT, or when INPUT
is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -a, --suffix-length=N  generate suffixes of length N (default 2)
      --additional-suffix=SUFFIX  append an additional SUFFIX to file names
  -b, --bytes=SIZE        put SIZE bytes per output file
  -C, --line-bytes=SIZE  put at most SIZE bytes of lines per output file
  -d, --numeric-suffixes[=FROM]  use numeric suffixes instead of alphabetic;
                                  FROM changes the start value (default 0)
  -e, --elide-empty-files  do not generate empty output files with '-n'
      --filter=COMMAND    write to shell COMMAND; file name is $FILE
  -l, --lines=NUMBER      put NUMBER lines per output file
  -n, --number=CHUNKS    generate CHUNKS output files; see explanation below
  -u, --unbuffered        immediately copy input to output with '-n r/...'
      --verbose  在每个输出文件打开前输出文件特征
      --help  显示此帮助信息并退出
      --version  显示版本信息并退出

SIZE is an integer and optional unit (example: 10M is 10*1024*1024).  Units
are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (powers of 1000).

CHUNKS may be:
N      split into N files based on size of input
K/N    output Kth of N to stdout
l/N    split into N files without splitting lines
l/K/N  output Kth of N to stdout without splitting lines
r/N    like 'l' but use round robin distribution
r/K/N  likewise but only output Kth of N to stdout

GNU coreutils online help: <>
请向<> 报告split 的翻译错误
要获取完整文档,请运行:info coreutils 'split invocation'

版本

[linuxidc@localhost ~]$ split --version
split (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
许可证:GPLv3+:GNU 通用公共许可证第3 版或更新版本<>。
本软件是自由软件:您可以自由修改和重新发布它。
在法律范围内没有其他保证。

由Torbjörn Granlund 和Richard M. Stallman 编写。

Linux split命令拆分文件详解

语法

split(选项)(file)PREFIX

实例

[linuxidc@localhost linuxidc.com]$ more linuxidc
w
w
w
l
i
n
u
x
i
d
c
c
o
m

Linux split命令拆分文件详解

1.根据行拆分

每3行拆分成一个文件,拆分后的文件名以linuxidc开头,以数字作为后缀后缀长度为1

[linuxidc@localhost linuxidc.com]$ split -l 3 linuxidc -d -a 1 linuxmi
[linuxidc@localhost linuxidc.com]$ ll
总用量 24
-rw-rw-r--. 1 linuxidc linuxidc 28 5月  19 19:43 linuxidc
-rw-rw-r--. 1 linuxidc linuxidc  6 5月  19 19:45 linuxmi0
-rw-rw-r--. 1 linuxidc linuxidc  6 5月  19 19:45 linuxmi1
-rw-rw-r--. 1 linuxidc linuxidc  6 5月  19 19:45 linuxmi2
-rw-rw-r--. 1 linuxidc linuxidc  6 5月  19 19:45 linuxmi3
-rw-rw-r--. 1 linuxidc linuxidc  4 5月  19 19:45 linuxmi4

Linux split命令拆分文件详解

2.按字节进行拆分

每三个字节拆分成一个文件,默认不加单位就是字节,也可以带单位比如KB,MB等

[linuxidc@localhost linuxidc.com]$ split -b 3 linuxidc -d -a 1 CentOS
[linuxidc@localhost linuxidc.com]$ ls -l centos*
-rw-rw-r--. 1 linuxidc linuxidc 3 5月  19 19:48 centos0
-rw-rw-r--. 1 linuxidc linuxidc 3 5月  19 19:48 centos1
-rw-rw-r--. 1 linuxidc linuxidc 3 5月  19 19:48 centos2
-rw-rw-r--. 1 linuxidc linuxidc 3 5月  19 19:48 centos3
-rw-rw-r--. 1 linuxidc linuxidc 3 5月  19 19:48 centos4
-rw-rw-r--. 1 linuxidc linuxidc 3 5月  19 19:48 centos5
-rw-rw-r--. 1 linuxidc linuxidc 3 5月  19 19:48 centos6
-rw-rw-r--. 1 linuxidc linuxidc 3 5月  19 19:48 centos7
-rw-rw-r--. 1 linuxidc linuxidc 3 5月  19 19:48 centos8
-rw-rw-r--. 1 linuxidc linuxidc 1 5月  19 19:48 centos9

Linux split命令拆分文件详解

3.生成一个大小为100KB的测试文件:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12772.html