欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

split 命令详解

程序员文章站 2022-04-22 18:10:05
...

Linux -- split 文件分割操作

 

SPLIT(1)                User Commands                SPLIT(1)

 

NAME 名称

    split - split a file into pieces  分割文件成多个碎片

 

SYNOPSIS 概要(语法)

    split [OPTION]... [INPUT [PREFIX]]

 

DESCRIPTION 说明

    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.

    将输入内容输出成固定大小的输出文件,格式如:PREFIXaa, PREFIXab, ...;默认大小为1000行,默认前缀是"x",当没有指定输入或输入是"-"时,从标准输入读取。

 

    Mandatory arguments to long options are mandatory for short options too.

    对于长选项必须的参数,对于短选项也是必须的。

 

    -a, --suffix-length=N

        generate suffixes of length N (default 2)

        使生成的后缀长度为N,默认为2。

 

    --additional-suffix=SUFFIX

        append an additional SUFFIX to file names

        追加一个额外的字符串作为文件名的后缀。

 

    -b, --bytes=SIZE

        put SIZE bytes per output file

        写入SIZE大小到每个输出文件,只有最后一个文件大小<=SIZE。

 

[root@user test]# ll
total 672
-rw-r----- 1 root root 681710 Feb 27 15:59 catalina.out
[root@user test]# split -b 100K catalina.out
[root@user test]# ll
total 1368
-rw-r----- 1 root root 681710 Feb 27 15:59 catalina.out
-rw-r--r-- 1 root root 102400 Feb 27 16:37 xaa
-rw-r--r-- 1 root root 102400 Feb 27 16:37 xab
-rw-r--r-- 1 root root 102400 Feb 27 16:37 xac
-rw-r--r-- 1 root root 102400 Feb 27 16:37 xad
-rw-r--r-- 1 root root 102400 Feb 27 16:37 xae
-rw-r--r-- 1 root root 102400 Feb 27 16:37 xaf
-rw-r--r-- 1 root root  67310 Feb 27 16:37 xag
[root@user test]#

 

    -C, --line-bytes=SIZE

        put at most SIZE bytes of lines per output file

        每个输出文件至多写入SIZE字节,以记录为单位,生成的每个文件都<=SIZE。

 

[root@user test]#
[root@user test]# ll
total 672
-rw-r----- 1 root root 681710 Feb 27 15:59 catalina.out
[root@user test]# split -C 100K catalina.out
[root@user test]# ll
total 1368
-rw-r----- 1 root root 681710 Feb 27 15:59 catalina.out
-rw-r--r-- 1 root root 102392 Feb 27 16:36 xaa
-rw-r--r-- 1 root root 102357 Feb 27 16:36 xab
-rw-r--r-- 1 root root 102203 Feb 27 16:36 xac
-rw-r--r-- 1 root root 102346 Feb 27 16:36 xad
-rw-r--r-- 1 root root 102384 Feb 27 16:36 xae
-rw-r--r-- 1 root root 102387 Feb 27 16:36 xaf
-rw-r--r-- 1 root root  67641 Feb 27 16:36 xag
[root@user test]#

 

    -d, --numeric-suffixes[=FROM]

        use numeric suffixes instead of alphabetic; FROM changes the start value (default 0)

        使用数字代替字母后缀,FROM指定数字的起始位置,默认从0开始。

 

 

[root@user test]# ll
total 672
-rw-r----- 1 root root 681710 Feb 27 15:59 catalina.out
[root@user test]# split -l 50000 catalina.out
[root@user test]# ll
total 1344
-rw-r----- 1 root root 681710 Feb 27 15:59 catalina.out
-rw-r--r-- 1 root root 681710 Feb 27 16:38 xaa
[root@user test]# rm -rf xaa
[root@user test]# split -l 50000 -d catalina.out
[root@user test]# ll
total 1344
-rw-r----- 1 root root 681710 Feb 27 15:59 catalina.out
-rw-r--r-- 1 root root 681710 Feb 27 16:38 x00
[root@user test]#

 

    -e, --elide-empty-files

        do not generate empty output files with '-n'

        结合-n使用,不生成空的输出文件。

 

    --filter=COMMAND

        write to shell COMMAND; file name is $FILE

        将结果作为COMMAND的输入,类似于管道符。

 

    -l, --lines=NUMBER

        put NUMBER lines per output file

        写入Number行到每个输出文件,最后一个文件<=NUMBER行。

 

    -n, --number=CHUNKS

        generate CHUNKS output files; see explanation below

        使生成CHUNKS输出文件,说明见后。

 

    -u, --unbuffered

        immediately copy input to output with '-n r/...'

        将输入立即写入到输出文件,结合-n r/...使用。

 

    --verbose

        print a diagnostic just before each output file is opened

        在打开或创建每个输出文件前,打印诊断信息。

 

    --help display this help and exit

        显示此命令的帮助信息并退出

 

    --version

        output version information and exit

        输入版本信息并退出

 

    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).

    SIZE参数是一个整数,亦是可选参数(例子:10M = 10*1024*1024).单数包括K, M, G, T, P, E, Z, Y(进制是1024)或者是KB, MB, ...(进制是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

    N    split into N files based on size of input

    基于大小将输入分成N份

    K/N  output Kth of N to stdout

    将输入基于大小分成N份,将第K份打印

    l/N  split into N files without splitting lines

    基于大小将输入分成N份,但不截断行,有断行往前补齐

    l/K/N   output Kth of N to stdout without splitting lines

    将输入基于大小分成N份,将第K份打印,但不截断行,有断行往前补齐

    r/N     like 'l' but use round robin distribution

    同l,使用循环分配

    r/K/N   likewise but only output Kth of N to stdout

    同l,使用循环分配,分成N份,将第K份打印,但不截断行,有断行往前补齐

 

    GNU coreutils online help: <http://www.gnu.org/software/coreutils/>

    Report split translation bugs to <http://translationproject.org/team/>

 

AUTHOR

    Written by Torbjorn Granlund and Richard M. Stallman.

 

COPYRIGHT

    Copyright (C) 2013 Free Software Foundation, Inc.  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are  free  to  change  and  redistribute  it. There is NO WARRANTY, to the extent permitted by law.

 

SEE ALSO

    The  full documentation for split is maintained as a Texinfo manual.  If the info and split programs are properly installed  at  your  site,  the command info coreutils 'split invocation' should give you access to the complete manual.

    split的完整文档是以Texinfo手册形式维护的。如果info和split程序都已经安装,那么执行命令:

        info coreutils 'split invocation'

    应该会让你访问到整篇手册。

 

GNU coreutils 8.22           June 2014                  SPLIT(1)