Linux下的文件行分割:split函数

jackxiang 2010-9-17 13:48 | |
split -l 5000 CCC.txt CCC_New.txt


[~/split]# ls
CCC_New.txtaa  CCC_New.txtad  CCC_New.txtag  CCC_New.txtaj  CCC_New.txtam  CCC_New.txtap
CCC_New.txtab  CCC_New.txtae  CCC_New.txtah  CCC_New.txtak  CCC_New.txtan  CCC_New.txtaq
CCC_New.txtac  CCC_New.txtaf  CCC_New.txtai  CCC_New.txtal  CCC_New.txtao  CCC.txt
今天接到一个需求是提取5月访问某域名的所有用户号码,文件一存放访问域名下地址A的用户号码,剩余用户按照50万整数一个包为规则提取。

这个剩余用户按照50万一个包让人看着有点紧张,怎么提?难道要用rownum?

不要被蒙蔽!还是提成一个文件好了,用linux下的split一分就完事了。

怎么用?

这样写


split -l 500000 js_24875.csv new_js_24875.csv


split  -l n
把infile拆分为n行的段,默认一个文件为1000行、、


split --help
  -l, --lines=NUMBER      put NUMBER lines per output file

注意:
split: Output file suffixes exhausted 注意此处:split在提示我们说输出时的文件名后缀被用光了



[root@linux ~]# split [-bl] file PREFIX
参数:
-b  :后面可接欲分割成的档案大小,可加单位,例如 b, k, m 等;
-l  :以行数来进行分割。
范例:
范例一:我的 /etc/termcap 有七百多K,若想要分成 300K 一个档案时?
[root@linux ~]# cd /tmp; split -b 300k /etc/termcap termcap
[root@linux tmp]# ls -l termcap*
-rw-rw-r--  1 root root  307200  8月 17 00:25 termcapaa
-rw-rw-r--  1 root root  307200  8月 17 00:25 termcapab
-rw-rw-r--  1 root root  184848  8月 17 00:25 termcapac
# 那个档名可以随意取的啦!我们只要写上前导文字,小档案就会以
# xxxaa, xxxab, xxxac 等方式来建立小档案的!
范例二:如何将上面的三个小档案合成一个档案,档名为 termcapback
[root@linux tmp]# cat termcap* >> termcapback
# 很简单吧?就用资料流重导向就好啦!简单!

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/3506/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2012-8-18 09:39
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]