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