zoukankan      html  css  js  c++  java
  • linux大文件拆分split

    环境:centos

    1、split帮助查看

    用法:split[OPTION]。。。[输入[前缀]]
    将固定大小的片输出到PREFIXaa,PREFIXab,…;默认值大小为1000行,默认前缀为“x”。没有输入,或者当输入时是-,读取标准输入。
    
    长选项的强制参数对于短选项也是必需的。
      -a、 --suffix=N                  生成长度为N的后缀(默认为2)
           --additional-suffix=suffix  在文件名后附加一个后缀
      -b、 --bytes=SIZE                放入每个输出文件的大小字节
      -C、 --line-bytes=size           每个输出文件最多放入行的大小字节
      -d、 --numeric-suffixes[=FROM]   使用数字后缀而不是字母后缀;从更改起始值(默认值0)
      -e、 --elide-empty-files         不生成带有“-n”的空输出文件
           --filter=command            写入shell命令;文件名为$file
      -l、 --lines=NUMBER              放入每个输出文件的NUMBER行
      -n、 --number=CHUNKS             生成CHUNKS输出文件;参见下面的解释
      -u、 --unbuffered                没有缓冲立即用“-n r/…”将输入复制到输出
           --verbose                   打印诊断就在每个诊断之前输出文件已打开
           --help                      显示此帮助并退出
           --version                   输出版本信息并退出
    
    SIZE是一个整数和可选单位(例如:10M是10*1024*1024)。单位是K,M,G,T,P,E,Z,Y(1024的幂)或KB,MB。。。(1000的幂)。
    
    块可以是:
      N     根据输入的大小分成N个文件
      K/N   输出到标准输出
      l/N   拆分为N个文件而不拆分行
      l/K/N 不分行输出N的第K位到标准输出
      r/N   类似于“l”,但使用循环分布
      r/K/N 只将N的Kth输出到标准输出

    2、最简单使用

    [root@deam a]# split file.txt            #默认按1000行拆分成以x开头的多个文件
    [root@deam a]# ll
    total 124
    -rw-r--r-- 1 root root 48894 Aug  5 20:41 file.txt
    -rw-r--r-- 1 root root  3893 Aug  5 21:28 xaa
    -rw-r--r-- 1 root root  5000 Aug  5 21:28 xab
    -rw-r--r-- 1 root root  5000 Aug  5 21:28 xac

    2、指定输出文件格式

    [root@deam a]# split file.txt -d -a 2 out  #指定输出文件格式 out开头 -d指定数字开始‘00’ -a 指定两位
    [root@deam a]# ll
    total 124
    -rw-r--r-- 1 root root 48894 Aug  5 20:41 file.txt
    -rw-r--r-- 1 root root  3893 Aug  5 21:32 out00
    -rw-r--r-- 1 root root  5000 Aug  5 21:32 out01
    -rw-r--r-- 1 root root  5000 Aug  5 21:32 out02

    3、指定分割行数和输出文件格式

    [root@deam a]# split -l 2000 file.txt -d -a 2 out  #指定拆分行数 -l 指定 2000行
    [root@deam a]# ll
    total 108
    -rw-r--r-- 1 root root 48894 Aug  5 20:41 file.txt
    -rw-r--r-- 1 root root  8893 Aug  5 21:35 out00
    -rw-r--r-- 1 root root 10000 Aug  5 21:35 out01
    [root@deam a]# cat out00|wc -l                     #统计文件2000行
    2000

    4、按指定大小进行拆分

    [root@deam a]# split -b 10k file.txt               #每10k拆分成一个文件,默认不加单位就是字节,也可以带单位比如KB,MB等
    [root@deam a]# ll
    total 104
    -rw-r--r-- 1 root root 48894 Aug  5 20:41 file.txt
    -rw-r--r-- 1 root root 10240 Aug  5 21:39 xaa
    -rw-r--r-- 1 root root 10240 Aug  5 21:39 xab

    5、对文件的合并

    [root@deam a]# cat xa* >> file.txt               #将拆分的所有文件合并成一个文件
    做一个决定,并不难,难的是付诸行动,并且坚持到底。
  • 相关阅读:
    ppt中调整图片位置
    如何理解 Google Protocol Buffer
    g++: error: unrecognized command line option ‘-std=C++11’
    手把手教你如何加入到github的开源世界!
    redis
    maven
    Spring----注释----开启Annotation <context:annotation-config> 和 <context:component-scan>诠释及区别
    JMX学习笔记(一)-MBean
    Redis学习笔记2-redis管道(pipeline)
    Redis学习笔记1-java 使用Redis(jedis)
  • 原文地址:https://www.cnblogs.com/wukc/p/13443057.html
Copyright © 2011-2022 走看看