split 命令详解

Linux -- split 文件分割操作

SPLIT(1)                User Commands                SPLIT(1)

NAME 名称

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

SYNOPSIS 概要(语法)

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

DESCRIPTION 说明

扫描二维码关注公众号,回复: 236107 查看本文章

    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)

猜你喜欢

转载自lshj.iteye.com/blog/2359345