linux split命令,Linux之split命令详解

Linux split命令用于将一个文件分割成数个,该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件,其基本语法是split [--help][--version][-][-b ][-C ][-l ][要切割的文件][输出文件名]。

命令功能:切割文件,将文件以行为单位或以字节为单位进行切割

命令语法:

split [–help][–version]

split [-][-l ] [要切割的文件][输出文件名]

,以行数为单位

split [-b ][-C ] [要切割的文件][输出文件名],以字节为单位

输出文件名是指切割后的文件会以此为前缀。

1. 以行为单位切割文件

首先创建一个有5行的文件hello,

#cat hello

Hello, World1

Hello, World2

Hello, World3

Hello, World4

Hello, World5

使用命令:

#split -2 hello split1_

split命令会将文件以两行为单位进行切割,每两行组成一个新文件,5行就有三个文件,名称会分别为:

split1_aa , split1_ab , split_ac

2. 以字节为单位的切割

还是文件hello,使用命令ls -l hello 可以看到文件的大小为65字节,以10字节切割文件,会有7个文件

先使用-b命令,如下:

#split -b 10 hello split2_

文件切出来有7个,

split2_aa , split2_ab , split2_ac , split2_ad , split2_ae , split2_af , split2_ag

下面使用-C参数,如下:

#split -C 10 hello split3_

切出了10个文件,用ls -l 命令输出如下:

ed122a582e4011b2731a4210a6ca3f64.png

虽然同样是以字节为单位切割文件,但-C参数会尽量保持每行的完整性,也就是说,一行有13个字节,那么会切割成两个文件,一个10字节,一个3字节,而-b参数会将8字节累计到下一行凑足十字节再切,所以-b参数只有7个文件,而-C参数有10个文件。

shell下的split命令主要用于分割一些大文件用的,比如经常要用到将一个几十万行的TXT分割为多少行一个的文件,非常有用,唯一坑爹的是,切割后的文件不能自动添加扩展名和按规律命名,刚找到一个还算不错的示例,算是解决了分割后命名无规律的问题,记录如下。

---------------2015年11月20日补充----------------

今天又用到了split命令,想批量给分割后的文件添加扩展名,终于找到一个靠谱的方法,记录如下:

split kws.txt -l 1000 -d -a 2 url_&&ls|grep kws_|xargs -n1 -i{} mv {} {}.txt

解释一下,将kws.txt文件按每个文件1000行分割,分割后的文件命名为kws_00....kws_01....kws_02等,等split命令执行完了,紧接着执行第二条命令ls|grep kws_|xargs -n1 -i{} mv {} {}.txt,意思是先查找kws_开头的文件,然后逐个重命名为.txt

---------------补充完毕-------------

split -l 2000 urls.txt -d -a 2 url_

ae9fe896f8c1873e4316e5fd422beea7.png

解释一下:

-l:按行分割,上面表示将urls.txt文件按2000行一个文件分割为多个文件

-d:添加数字后缀,比如上图中的00,01,02

-a 2:表示用两位数据来顺序命名

url_:看上图就应该明白了,用来定义分割后的文件名前面的部分。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值