linux: split

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

下面记录下基本用法:
split [-bl] file [prefix]

参数说明:
-b, --bytes=SIZE:对file进行切分,每个小文件大小为SIZE。可以指定单位b,k,m。
-C,--bytes=SIZE:与-b选项类似,但是,切割时尽量维持每行的完整性。
-l, --lines=NUMBER:对file进行切分,每个文件有NUMBER行。
prefix:分割后产生的文件名前缀。

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

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

生成xaa,xab,xac三个文件。

wc -l 看到三个文件行数如下:

5000 xaa
5000 xab
2081 xac
12081 总计
split -b 600k test.2012-08-16_17  

生成xaa,xab两个文件

ls -lh 看到 两个文件大小如下:

600K xaa
554K xab
split -b 500k test.2012-08-16_17 example  

得到三个文件,文件名的前缀都是example

ls -lh 看到文件信息如下:

500K exampleaa
500K exampleab
154K exampleac
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容