免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wenjun3000

[文本处理] 一个超大sqlite(两千多万行)按行数分割到指定文件夹下,能实现吗? [复制链接]

论坛徽章:
4
程序设计版块每日发帖之星
日期:2016-08-11 06:20:00数据库技术版块每日发帖之星
日期:2016-08-13 06:20:00程序设计版块每日发帖之星
日期:2016-08-14 06:20:00数据库技术版块每日发帖之星
日期:2016-08-14 06:20:00
发表于 2016-08-19 15:26 |显示全部楼层
  1. split -n 100000 x.db3 -d -a 3
  2. 输出结果: x001 x002 x003 ...
复制代码

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
发表于 2016-08-19 17:01 |显示全部楼层
本帖最后由 moperyblue 于 2016-08-19 19:00 编辑

splitFile.sh
  1. #!/bin/bash

  2. #源文件与该脚本同目录

  3. SRC_FILE=/cygdrive/c/cygwin/home/Administrator/x.db3 #源文件
  4. SPLIT_PER_LINES=500000 #分割的行数

  5. LINE_INTOTAL=`wc -l "$SRC_FILE" |sed 's/ .*//'`
  6. LEN=`awk -va="$LINE_INTOTAL" -vb="$SPLIT_PER_LINES"  'BEGIN{print length(int(a/b))}'`
  7. split -l"$SPLIT_PER_LINES" -a"$LEN" -d "$SRC_FILE"


  8. DEST_PATH_LIST=/cygdrive/c/cygwin/home/Administrator/a.txt  #存放分割后文件的对应目标路径列表

  9. # -v fn="x.db3"  #存放的统一文件名为x.db3
  10. awk -v fn="x.db3" '{getline x <"'"$DEST_PATH_LIST"'"; cmd="mv "$1" "x"/"fn;system(cmd)}' <(find . -maxdepth 1 -type f -name "x*" ! -name "*x.db3"|sort -k1.4n)
复制代码
  1. ./splitFile.sh
复制代码

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-08-17 06:20:00每日论坛发贴之星
日期:2016-08-17 06:20:00
发表于 2016-08-19 18:19 |显示全部楼层
回复 12# moperyblue


出现如下错误,而且我复制到   C:\cygwin\home\Administrator 下面的 x.db3(3G)也被删除了,重新复制过去,再运行,还是那样
QQ截图20160819181521.jpg
QQ截图20160819181445.jpg

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-08-17 06:20:00每日论坛发贴之星
日期:2016-08-17 06:20:00
发表于 2016-08-19 18:43 |显示全部楼层
回复 12# moperyblue


x.db3被复制到C:\cygwin下面了
QQ截图20160819184216.jpg

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-08-17 06:20:00每日论坛发贴之星
日期:2016-08-17 06:20:00
发表于 2016-08-19 19:00 |显示全部楼层
回复 12# moperyblue


  修改后,可以运行了,但分割的大小不对,x.db3总共2.99G,22007762行,按50万行分割,分割后每个文件不应该超过100M
QQ截图20160819184216.jpg
QQ截图20160819185750.jpg

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-08-17 06:20:00每日论坛发贴之星
日期:2016-08-17 06:20:00
发表于 2016-08-19 19:02 |显示全部楼层
回复 15# wenjun3000


还是有问题,麻烦有空帮忙看看啊   

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
发表于 2016-08-19 19:05 |显示全部楼层
本帖最后由 moperyblue 于 2016-08-19 19:06 编辑

回复 16# wenjun3000


    很明显文件路径不对吧?
SRC_FILE=/cygdrive/c/cygwin/home/Administrator/x.db3
DEST_PATH_LIST=/cygdrive/c/cygwin/home/Administrator/a.txt

现在12楼的脚本改了
添加了 => ! -name "*x.db3"   #就是把源文件(要被分割的文件)过滤掉.因为源文件也是以"x"开头

用12楼的脚本替换掉之前的脚本 再运行看看

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-08-17 06:20:00每日论坛发贴之星
日期:2016-08-17 06:20:00
发表于 2016-08-19 19:19 |显示全部楼层
回复 17# moperyblue


只分割了两个文件
QQ截图20160819191823.jpg    

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
发表于 2016-08-19 19:24 |显示全部楼层
回复 18# wenjun3000


    a.txt里有对应的目录吗?

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-08-17 06:20:00每日论坛发贴之星
日期:2016-08-17 06:20:00
发表于 2016-08-19 19:25 |显示全部楼层
回复 19# moperyblue


QQ截图20160819192423.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP