用shell切分文件--split

原文地址:https://blog.csdn.net/qmhball/article/details/7917033

有个文件要处理,因为很大,所以想把它切成若干份,每份N行,以便并行处理。怎么搞呢?查了下强大的shell,果然有现成的工具--split。
下面记录下基本用法:

split [-bl] file [prefix]


参数说明:
-b, --bytes=SIZE:对file进行切分,每个小文件大小为SIZE。可以指定单位b,k,m。
-l, --lines=NUMBER:对file进行切分,每个文件有NUMBER行。

prefix:分割后产生的文件名前缀。


示例:

假设要切分的文件为test.2012-08-16_17,大小1.2M,12081行。

1)

split -l 5000 test.2012-08-16_17

生成xaa,xab,xac三个文件。
wc -l 看到三个文件行数如下:
5000 xaa
5000 xab
2081 xac

12081 总计


2)

split -b 600k test.2012-08-16_17

生成xaa,xab两个文件
ls -lh 看到 两个文件大小如下:
600K xaa

554K xab


3)

split -b 500k test.2012-08-16_17 example

得到三个文件,文件名的前缀都是example
ls -lh 看到文件信息如下:
500K exampleaa
500K exampleab
154K exampleac  
————————————————
版权声明:本文为CSDN博主「ball球」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qmhball/article/details/7917033

 

参考2:https://blog.csdn.net/pzasdq/article/details/52830098

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_

解释一下:

 

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值