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
-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
评论列表