当前位置:首页 > linux教程 > 列表

Linux下split 命令使用详解

发布:smiling 来源: PHP粉丝网  添加日期:2015-05-05 15:33:59 浏览: 评论:0 

从函数层面上来看是对文件进行切割了,我们可以使用split命令进行文件的很多操作,下现来看几个Linux下split 命令使用例子.

按大小切割,每100M切割:split -b 100m filename

按行数切割,每100w行切割,并带上前缀:split -l10000000 pc.txt i_

合并:cat x* > pc.txt

split:切割文件

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

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

参 数:

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

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

-C<字节>   与-b参数类似,但切割时尽量维持每行的完整性

?help   显示帮助

?version   显示版本信息

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

实例1、以每个文件1000行分割

split命令分割文件成每个文件1000行,并且文件名依次为 [前缀]aa,[前缀]ab,[前缀]ac等,默认的前缀是X,每个文件的行数为1000行,命令如下:

  1. $ split mylog 
  2. $ wc -l * 
  3.      4450 mylog 
  4.      1000 xaa 
  5.      1000 xab 
  6.      1000 xac 
  7.      1000 xad 
  8.       450 xae 

实例2、以每个文件20MB分割

分割文件为多个20MB的文件,附带-b选项命令如下:

  1. $ split -b 20M logdata 
  2.  
  3. $ ls -lh | tail -n +2 
  4.  
  5. -rw------- 1 sathiya sathiya 102M Jul 25 18:47 logdata 
  6.  
  7. -rw------- 1 sathiya sathiya  20M Jul 25 19:20 xaa 
  8.  
  9. -rw------- 1 sathiya sathiya  20M Jul 25 19:20 xab 
  10.  
  11. -rw------- 1 sathiya sathiya  20M Jul 25 19:20 xac 
  12.  
  13. -rw------- 1 sathiya sathiya  20M Jul 25 19:20 xad 
  14. //phpfensi.com 
  15. -rw------- 1 sathiya sathiya  20M Jul 25 19:20 xae 
  16.  
  17. -rw------- 1 sathiya sathiya 1.6M Jul 25 19:20 xaf 

实例3、以每个文件50MB指定前缀分割

使用--bytes选项把文件分割成多个50MB的文件,--bytes类似-b选项,在第二个参数指定前缀.

  1. $ split --bytes=50M logdata mydatafile 
  2.  
  3. $ ls -lh 
  4.  
  5. total 204M 
  6.  
  7. -rw------- 1 sathiya sathiya 102M Jul 25 18:47 logdata 
  8.  
  9. -rw------- 1 sathiya sathiya  50M Jul 25 19:23 mydatafileaa 
  10.  
  11. -rw------- 1 sathiya sathiya  50M Jul 25 19:23 mydatafileab 
  12.  
  13. -rw------- 1 sathiya sathiya 1.6M Jul 25 19:23 mydatafileac 

实例4、基于行数分割文件

使用-l选项指定行数来把文件分割成多个行数相同的文件.

  1. $ wc -l testfile 
  2.  
  3. 2591 testfile 
  4.  
  5. $ split -l 1500 testfile importantlog 
  6.  
  7. $ wc -l * 
  8.  
  9.   1500 importantlogaa 
  10.  
  11.   1091 importantlogab 
  12.  
  13.   2591 testfile 

实例5、以数字后缀命名分割文件

使用-d选项可以指定后缀为数字,如00,01,02..,而不是aa,ab,ac.

  1. $ split -d testfile 
  2.  
  3. $ ls 
  4.  
  5. testfile  x00  x01  x02 

可用选项

短选项 长选项 选项描述

-b --bytes=SIZE SIZE 值为每一输出档案的大小,单位为 byte。

-C --line-bytes=SIZE 每一输出档中,单行的最大 byte 数。

-d --numeric-suffixes 使用数字作为后缀。

-l --lines=NUMBER NUMBER 值为每一输出档的列数大小。

合并cat使用方法

cat命令

语法:cat [-AbeEnstTuv] [--help] [--version] fileName

-n 或 ?number 由 1 开始对所有输出的行数编号

-b 或 ?number-nonblank 和 -n 相似,只不过对于空白行不编号

-s 或 ?squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行

-v 或 ?show-nonprinting

  1. #cat常用功能 
  2.  
  3. #一次显示整个文件 
  4.  
  5. cat   filename 
  6.  
  7. #创建一个文件,只能创建新文件,不能编辑已有文件 
  8.  
  9. cat  &gt;  filename 
  10.  
  11. #将几个文件合并为一个文件。 
  12.  
  13. cat   file1   file2  &gt; file 

所以上面的示例中将分割文件合并,可以使用:

  1. #合并 
  2.  
  3. cat a.tar.gz.* &gt; a.tar.gz 
  4.  
  5. #合并并解压 
  6.  
  7. cat a.tar.gz.*  | tar -zxv

Tags: Linux命令 split 命令

分享到: