split命令

split命令用于将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件。

语法

split [OPTION]... [FILE [PREFIX]]

参数

  • -a, --suffix-length=N: 使用长度为N的后缀,默认为2
  • --additional-suffix=SUFFIX: 将额外的SUFFIX插入文件名。
  • -b, --bytes=SIZE: 每个输出文件放置SIZE字节,即指定每多少字节切成一个小文件。
  • -C, --line-bytes=SIZE: 每个输出文件最多放入SIZE个字节行,与参数-b相似,但是在切割时将尽量维持每行的完整性。
  • -d: 使用数字后缀而不是字母。
  • --numeric-suffixes[=FROM]: 与-d相同,但允许设置起始值。
  • -e, --elide-empty-files: 不使用-n生成空的输出文件。
  • --filter=COMMAND: 写入shell命令COMMAND,文件名是$FILE
  • -l, --lines=NUMBER: 每个输出文件放入NUMBER行。
  • -n, --number=CHUNKS: 生成CHUNKS输出文件,CHUNKS可以取的值有,N:根据输入大小分为N个文件,K/N:将N的第K个输出到标准输出,l/N: 分割成N个文件,不分割行,l/K/N:输出K的第N到标准输出,而不分割线,r/N:类似于l,但同样使用循环分布r/K/N,但仅将N的第K个输出到标准输出。
  • -t, --separator=SEP: 使用SEP代替换行符作为记录分隔符,\00指定NUL字符。
  • -u, --unbuffered: 立即使用-n r/...将输入复制到输出。
  • --verbose: 在打开每个输出文件之前,输出详细的信息。
  • --help: 输出帮助信息。
  • --version: 输出版本信息。

示例

将文件tmp/file.txtN个独立的文件,分别为newaanewabnewac...,每个文件包含2个字节的数据。

split -b 2 /tmp/file.txt new

将文件tmp/file.txtN个独立的文件,分别为newaanewabnewac...,每个文件包含2行数据。

split -l 2 /tmp/file.txt new

将文件tmp/file.txtN个独立的文件,以数字作为后缀,每个文件包含2行数据。

split -d -l 2 /tmp/file.txt new

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://www.computerhope.com/unix/usplit.htm https://www.runoob.com/linux/linux-comm-split.html https://www.tutorialspoint.com/unix_commands/split.htm