Linux命令之大文件切分与合并,Shell真是无所不能

作者: 关于计算机  发布:2019-10-17

突然发现到Linux shell命令的强大,有时在Windows需要一个软件的操作,在Ubuntu终端执行一条命令就可以。

当面临将一个大文件进行切分时,Linux的split命令是很好的选择。它包含多种参数,支持按行、大小进行切分。

比如:

split命令的语法如下:

split命令

  1. split [--help][--version][-a ][-b][-C ][-l ][要切割的文件][输出文件名前缀] 

    split [--help][--version][-a ][-b][-C ][-l ][要切割的文件][输出文件名前缀]

语法:komy@komy-vmware:~$ split [-bl] 输入文件 输出文件

对应的参数描述如下:

参数说明

  1. -a, --suffix-length=N 
  2.     使用的后缀长度 (默认为 2) 
  3. -b, --bytes=SIZE 
  4.     每个输出文件的字节大小 
  5. -C, --line-bytes=SIZE 
  6.     每个输出文件每行的最大字节大小 
  7. -d, --numeric-suffixes 
  8.     使用数字后缀代替字母后缀 
  9. -l, --lines=NUMBER 
  10.     设定每个输出文件的行数 
  11. --help 显示帮助信息 
  12. --version 
  13.     显示版本信息 

    -a, --suffix-length=N

    使用的后缀长度 (默认为 2)
    

    -b, --bytes=SIZE

    每个输出文件的字节大小
    

    -C, --line-bytes=SIZE

    每个输出文件每行的最大字节大小
    

    -d, --numeric-suffixes

    使用数字后缀代替字母后缀
    

    -l, --lines=NUMBER

    设定每个输出文件的行数
    

    --help 显示帮助信息 --version

    显示版本信息
    

-b :以文件大小来分

下面举几个例子:

-l:以行数来分

1)将文件splitTest.txt分割成多个文件,分割后的每个文件大小为10M。命令:

例如split -l 100 test.txt out

  1. $ split -b 20m splitTest.txt 
  2. $ ls 
  3. splitTest.txt  xaa  xab  xac 

    $ split -b 20m splitTest.txt $ ls splitTest.txt xaa xab xac

就是把test.txt每100行输出一个文件outaa,outab,outcd以此类推。。。实现了文本文件的分割。

2)将文件splitTest.txt分割成多个文件,分割后的每个文件大小为10M。指定分割后的文件前缀位split,命令:

split -b 100k test.txt out

  1. $ split -b 20m splitTest.txt  split 
  2. $ ls 
  3. splitaa  splitab  splitac  splitTest.txt 

    $ split -b 20m splitTest.txt split $ ls splitaa splitab splitac splitTest.txt

就是把test.txt每100KB输出一个文件outaa,outab,outcd以此类推。

3)将文件splitTest.txt分割成多个文件,每个文件50万行。命令:

这两个命令对于手机看小说有限制的情况下很受用。。。

  1. $ wc -l splitTest.txt   
  2. 1502216 splitTest.txt 
  3. $ split -l 500000 splitTest.txt  split 
  4. $ ls 
  5. splitaa  splitab  splitac  splitad  splitTest.txt 

    $ wc -l splitTest.txt 1502216 splitTest.txt $ split -l 500000 splitTest.txt split $ ls splitaa splitab splitac splitad splitTest.txt

不仅仅如此cat 命令可将这些分割后的文件合并为一个文件,并重定向到“largefile”文件中(largefile为自定的文件名)。

4)将文件splitTest.txt分割成多个文件,每个文件50万行。指定分割后的文件后缀为数字,数字位数为3位,命令:

komy@komy-vmware:~$ cat out* > largeflie

  1. $ wc -l splitTest.txt   
  2. 1502216 splitTest.txt 
  3. $ split -l 500000 -d -a 3 splitTest.txt  split 
  4. $ ls 
  5. split000  split001  split002  split003  splitTest.txt 

    $ wc -l splitTest.txt 1502216 splitTest.txt $ split -l 500000 -d -a 3 splitTest.txt split $ ls split000 split001 split002 split003 splitTest.txt

图片 1

可以使用cat命令将切分后的文件合并成新的文件:

 

  1. $ cat split0* > original.txt 

图片 2

本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-09/106542.htm

图片 3

本文由王中王开奖结果发布于关于计算机,转载请注明出处:Linux命令之大文件切分与合并,Shell真是无所不能

关键词:

上一篇:没有了
下一篇:没有了