按行数分割

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

 
  1. split [-bl] file [prefix]  


参数说明:

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

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

 

示例:

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

1)

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

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

  1. 总计

2) 

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

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

  1. xab

3)

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

得到三个文件,文件名的前缀都是example
ls -lh 看到文件信息如下:
500K exampleaa
500K exampleab
154K exampleac

Last modified onWednesday, 05 June 2013 09:01

Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php on line 169
  • Published in reaver
  • Read 2725 times
More in this category: « 以 xx 开头的行 导出

Notice: Only variables should be assigned by reference in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php on line 478
back to top