• linux大文件分割 split命令


    linux split 命令

      功能说明:切割文件。

      语  法:split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名] 【前缀】

      补充说明:split可将文件切成较小的文件,预设每1000行会切成一个小文件。

      参  数:

      -<行数>或-l<行数>  指定每多少行就要切成一个小文件。

      -b<字节>  指定每多少字就要切成一个小文件。支持单位:m,k

      -C<字节>  与-b参数类似,但切割时尽量维持每行的完整性。(这个比较有用,特别是在分割大Sql文件时,如果' you '

    被分割成'yo 和u',那么cat后运行还是错误。

      --help  显示帮助。

      --version  显示版本信息。

      [输出文件名]  设置切割后文件的前置文件名,split会自动在前置文件名后再加上编号。

      使用例子:

      split -b 100m filename

    把文件分成100m的文件。

     split  -b  20m  gkdb.db   gkdb_pack_

    gkdb_pack_是每个小文件的前缀。

    1.文件切割
    文件切割模式分为两种:
         文本文件
         二进制模式。
    1.1文本模式
    文本模式只适用于文本文件,用这种模式切割后的每个文件都是可读的。文本模式又分为两种:
         按最大文件大小切割;
         按文本行数切割。
    1.1.1最大文件大小切割
    split -C 5k duanxin split
    将文本文件duanxin按每块最大5k的大小进行切割,不打碎行。输出文件名类似splitaa, splitab……
     
    split -b 5k duanxin split
    每个分块(当然,最后一个不保证)大小都是5k,可能会打碎行。
    1.1.2 按文本行数切割
    split -l 100 duanxin split
    每个分块100行,不考虑大小。日志分析时应该有用。
    1.2 二进制模式
    split -b 5k duanxin split
    每个分块(当然,最后一个不保证)大小都是5k,基本不可读。任何类型文件都可以用这种切割模式。
    2.文件合并
    cat split* >newduanxin
    不管用什么方式切割,合并方法不变。
    3.其它
    split可以用-a选项指定输出文件名的长度。如
    split -l 100 -a 3 duanxin split
    则输出文件出类似于splitaaa,splitaab。不指定时默认为2。
    用-b或-C指定分块大小时,可用的单位有,b for 512bytes, k for 1Kbytes, m for 1 Megbytes.
    split 参数:
    -a, --suffix-length=N   指定输出文件名的后缀,默认为2个
    -b, --bytes=SIZE        指定输出文件的字节数
    -C, --line-bytes=SIZE  每一输出档中,单行的最大 byte 数
    -d, --numeric-suffixes  使用数字代替字母做后缀
    -l, --lines=NUMBER    NUMBER 值为每一输出档的列数大小
     
    grep介绍   (1)grep 的一般格式为 grep [options] 基本正则表达式 [文件] 
          字符串参数最好采用是双引号括,一是以防被误解为shell命令,二是可以用来查找多个单词组成的字符串 
          -c:只输出匹配行的记数 
          -i:不区分大小写(只适用于单个字符) 
          -h:查询多个文件时不显示文件名 
          -H:只显示文件名 
          -l:查询多文件时只输出包含匹配字符的文件名 
          -n:只显示匹配行及其行号 
          -s:不显示不存在或无匹配文本的错误信息。 
          -v:显示不包含匹配文本的所有行。 
      (2)举例说明: 
          grep ^[^210] myfile 匹配myfile中以非2、1、0开头的行 
     
    如何删除文件指定行:
    sed
    “p” command prints the buffer (remember to use -n option with “p”) 
    “d” command is just opposite, its for deletion. ‘d’ will delete the pattern space buffer and immediately starts the next cycle. 
    :删除从第4行到第8行 
    $sed 4,8d thegeekstuff.txt 
     
     
     
     
      命令:split -l 300 large_file.txt new_file_prefix -d
    系数不是字母而是数字(-d)
     
    linux下文件分割可以通过split命令来实现,可以指定按行数分割和安大小分割两种模式。Linux下文件合并可以通过cat命令来实现,非常简单。
    例如将一个BLM.txt文件分成前缀为 BLM_ 的1000个小文件,后缀为系数形式,且后缀为4位数字形式
    先利用
    wc -l BLM.txt       读出 BLM.txt 文件一共有多少行
    再利用 split 命令
    split -l 2482 ../BLM/BLM.txt -d -a 4 BLM_
    将 文件 BLM.txt 分成若干个小文件,每个文件2482行(-l 2482),文件前缀为BLM_ ,系数不是字母而是数字(-d),后缀系数为四位数(-a 4)
     
     
  • 相关阅读:
    Python——协程
    Linux——raid介绍
    Linux——网关介绍
    Linux——inode节点介绍
    算法:排序加二分查找
    Mysql主从复制作用和工作原理详解
    Selenium中错误:selenium.common.exceptions.ElementClickInterceptedException: Message: element click inte
    redis.exceptions.DataError: Invalid input of type: 'dict'. Convert to a byte, string or number first
    Python之requests错误Expecting value: line 1 column 1 (char 0)
    简述cookies和session的区别
  • 原文地址:https://www.cnblogs.com/youxin/p/3869064.html
Copyright © 2020-2023  润新知