暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux常用命令之split命令

Linux日常小实验 2019-01-14
847

实验环境: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的路上,期待与您同行。




文章转载自Linux日常小实验,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论