split.1

SPLIT(1)

SPLIT(1)

FreeBSD General Commands Manual

SPLIT(1)

split

将一个文件分成几块

split -d [-l line_count] [-a suffix_length] [file [prefix]] split -d -b byte_count[K | k | M|m | G | g] [-a suffix_length] [file [prefix]] split -d -n chunk_count [-a suffix_length] [file [prefix]] split -d -p pattern [-a suffix_length] [file [prefix]]

split 实用程序读取给定 file 并将其分解为每个 1000 行的文件(如果未指定选项),保持 file 不变。 如果 file 是单个破折号 (‘-’)- 或不存在,则从标准输入 split 读取。

选项如下:

-a suffix_length

使用 suffix_length 字母组成文件名的后缀。

-b byte_count[K|k|M|m|G|g]

创建长度为 byte_count 个字节的拆分文件。 如果将 kK 附加到数字,则文件将拆分为 byte_count 千字节块。 如果将 mM- 附加到数字,则文件将拆分为 byte_count 兆字节块。 如果将 gG- 附加到数字,则文件将拆分为 byte_count 千兆字节块。

-d

使用数字后缀而不是字母后缀。

-l line_count

创建拆分文件 line_count 行的长度。

-n chunk_count

将文件拆分为 chunk_count 个文件的大小为 file 大小 / chunk_count ) ,最后一个文件将包含剩余字节。

-p pattern

每当输入行匹配 pattern 时,文件就会被拆分,模式被解释为扩展的正则表达式。 匹配的行将是下一个输出文件的第一行。 此选项与 -b-l 选项不兼容。

如果指定了其他参数,则第一个参数用作要拆分的输入文件的名称。 如果指定了第二个附加参数,它将用作文件被拆分成的文件名的前缀。 在这种情况下,文件被拆分成的每个文件都由前缀命名,后跟使用 suffix_length 范围 “a-z” 中的字符的词法排序后缀。 如果未指定 -a ,则使用两个字母作为后缀。

如果未指定 prefix 参数,则文件将按词法排序文件以前缀 “x” 命名,后缀如上。

LANG, LC_ALL, LC_CTYPELC_COLLATE 环境变量会影响 split 的执行,如 environ(7) 中所述。

The split utility exits 0 on success, and >0 if an error occurs.

根据需要将输入拆分为多个文件,以便每个文件最多包含 2 行:

$ echo -e "first line\nsecond line\nthird line\nforth line" | split -l2

使用文件名的数字前缀将输入拆分为 10 个字节的块。 这将生成两个 10 字节的文件(x00 和 x01)和第三个文件(x02),剩余 2 个字节:

$ echo -e "This is 22 bytes long" | split -d -b10

拆分输入生成 6 个文件:

echo -e "This is 22 bytes long" | split -n 6

每次一行匹配正则表达式 “t” 后跟 “a” 或 “u” 时,拆分输入创建一个新文件,从而创建两个文件:

$ echo -e "stack\nstock\nstuck\nanother line" | split -p 't[au]'

csplit(1), re_format(7)

split 实用程序符合 IEEE Std 1003.1-2001 (“POSIX.1”) 。

A split 命令出现在 Version 3 AT&T UNIX 中。

匹配模式的最大行长度为 65536。

May 9, 2013

FreeBSD 13.1-RELEASE

最后更新于

FreeBSD 中文社区