Shell之split使用详解,文件切割应用

Split --help

[root@dw-hsd02-pe connect]# split --help
Usage: split [OPTION]... [INPUT [PREFIX]]
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.

Mandatory arguments to long options are mandatory for short options too.
  -a, --suffix-length=N   生成长度为N的后缀(默认值2)
      --additional-suffix=SUFFIX  文件名后面附加一个后缀
  -b, --bytes=SIZE        按大小切割文件 -b 10k/10m/..
  -C, --line-bytes=SIZE   按字节切割文件类-b
  -d, --numeric-suffixes[=FROM]  使用数字后缀替代字母
                                   FROM changes the start value (default 0)
  -e, --elide-empty-files  不生成带有'-n'的空输出文件
      --filter=COMMAND    write to shell COMMAND; file name is $FILE
  -l, --lines=NUMBER      按行切割文件
  -n, --number=CHUNKS     按生成文件个数切割
  -u, --unbuffered        immediately copy input to output with '-n r/...'
      --verbose           打印日志
      --help     打印帮助文档
      --version  输出版本信息并退出
  • 按文件大小切分,并指定后缀
[root@]# split -b 1k biz_date.txt -d -a 1 date_
date_0
date_1
  • 按字节切分
[root@ tmp]#  split -C 200 biz_date.txt -d -a 1 date_
date_0
date_1
date_2
date_3
date_4
date_5
date_6

(按大小切分有或许会把一行文件拆开,放到另一文件导致数据不完整,需要手动处理数据)

  • 批量为文件添加后缀
[root@ tmp]# ls | grep date_|xargs -n1 -i{} mv {} {}.txt
date_0.txt
date_1.txt
date_2.txt
date_3.txt
date_4.txt
date_5.txt
date_6.txt
  • 按行数切割,并重命名文件
[root@ tmp]# split -l 50 biz_date.txt -d -a 1 date_
date_0
date_1
date_2
[root@ tmp]# ls |grep date_|xargs -n1 -i{} mv {} {}.txt
date_0.txt
date_1.txt
date_2.txt
  • 按输出文件个数切割
[root@ tmp]# split -n 5 biz_date.txt -d -a 2 biz_
biz_00
biz_01
biz_02
biz_03
biz_04

猜你喜欢

转载自blog.csdn.net/qq_24256877/article/details/106406734