实验环境:Centos7.4
实验目的:掌握linux的常用命令-split命令的用法
实验步骤:
Linux split命令用于将一个文件分割成数个。
该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件。
语法
split [OPTION]... [INPUT [PREFIX]]
[OPTION]
-a, --suffix-length=N use suffixes of length N (default 2)
输出文件后缀长度,默认为:2
-b, --bytes=SIZE put SIZE bytes per output file
按照文件大小分割文件,单位:字节
一个字节 = 8位二进制数(1byte == 8bit)
ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间
UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体,及中文标点)等于三个字节
Unicode编码:一个英文(含标点)等于两个字节,一个中文(含繁体,及中文标点)等于两个字节
-d, --numeric-suffixes use numeric suffixes instead of alphabetic
添加数字后缀(因为默认添加的是字母后缀,所有要想加数字需要自己添加)
-l, --lines=NUMBER put NUMBER lines per output file
按照行数分割文件,默认1000行一个文件
--verbose print a diagnostic just before each output file is opened
打印运行状态信息
--help display this help and exit
查看说明文档
--version output version information and exit
查看版本信息
要做实验,首先必须有一个大的文件,比如说oracle.log日志文件700M,如果想查看日志使用vi/vim速度还是很慢,利用以前的head tail 还有重定向>/>>是可以解决此问题,但是需要精确的知道是在哪一行存在着error的信息,如果不知道的话,只能采用二分法来处理。读者看到这里,如果对之前的命令不是很熟悉可以翻看命令。
或者
# cat oracle.log| wc -l /*统计日志文件中行的数量,一共有多少行*/ # tail -n 500 oracle.log > test1.txt # head -n 250 test1.txt > test2.txt |
然后采用二分法+head+tail的三方组合继续查找,知道找到error的错误行。
好开始啦,建立一个700M大小的日志文件,供实验使用。
# dd if=/dev/zero bs=1024 count=700000 of=oracle.log # ls -al oracle.log |
拆分为350M
# split -b 350M oracle.log # ls -al xaa xab |
发现目录下多了两个文件xaa,xab
在没有明确指定拆分后文件的命名方式的情况下,split 会默认采用 x 字符作为文件前缀,采用类似 aa、ab、ac 的字符串依次作为文件后缀。于是,xaa、xab 出现了。
如果对默认的命名规则不喜欢,好按照自己的规则设置前缀。
# split -b 350M oracle.log oracle.log_ # split -b 350M -d oracle.log oracle.log_ # split -d -100 oracle.log oracle.log_ |
拆分完成了,还能原封不动的合上吗?哇,服务真是周到,答案是可以。
# cat xaa xab > oracle.log |
用cat命令搞定了,原封不动的又还原回去了,哇好神奇。
如果您喜欢我的文章,请长按以下图片关注我的公众号,学习Linux的路上,期待与您同行。





