mirror of https://github.com/Black-Gold/Learn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.4 KiB
2.4 KiB
split
说明
split命令 可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等
-b:,
-C:每一输出档中,单行的最大 byte 数
-d:
-l:
-a:(默认为2)
用法:split [选项] [输入 [前缀]]
输出固定大小的INPUT到PREFIX; 默认大小为1000行,默认PREFIX为“x”。 没有INPUT,或INPUT为 - 时,读取标准输入
-a, --suffix-length=N 指定后缀长度 (default 2)
--additional-suffix=SUFFIX append an additional SUFFIX to file names
-b, --bytes=SIZE 值为每一输出档案的大小;单位为 byte
-C, --line-bytes=SIZE 每个输出文件最多放置SIZE字节行数,单行最大byte数
-d, --numeric-suffixes[=FROM] 取代字母,使用数字作为后缀,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 值为每一输出档的列数大小
-n, --number=CHUNKS generate CHUNKS output files; see explanation below
-u, --unbuffered immediately copy input to output with '-n r/...'
--verbose 在每个输出文件打开前输出文件特征
SIZE是一个整数加上可选的单位(例如: 10M is 10*1024*1024)
单位有: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
实例
dd if=/dev/zero bs=100k count=1 of=date.file # 生成一个大小为100KB的测试文件
split -b 10k date.file # 使用split命令将上面创建的date.file文件分割成大小为10KB的小文件
split -b 10k date.file -d -a 3 # file分割成多个后缀文件,若想用数字后缀可使用-d参数,同时可使用-a length来指定后缀长度
split -b 10k date.file -d -a 3 split_file # 为分割后的文件指定文件名的前缀
# 使用-l选项根据文件的行数来分割文件,例如把文件分割成每个包含100行的小文件
split -l 100 test.sql -d -a 2 --additional-suffix=.sql test