免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2792 | 回复: 10
打印 上一主题 下一主题

[求助] 带有‘\’文件的导入 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-16 14:13 |只看该作者 |倒序浏览
有一个很大的文件(20G左右)
同时,文件里面的某些行里有"\",格式如下(之间以\t分割):

1        34ed3        [])(8['\\\\\\\        0        12        34

这样的数据如何导入到mysql里面?

不胜感激:)

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
2 [报告]
发表于 2009-03-16 14:19 |只看该作者

回复 #1 wanggd1983 的帖子

带\这个没问题,引号引起来就是了。

但是这个值里[])(8['\\\\\\\    '这个符号是个问题,一般我是替换掉再进。

论坛徽章:
0
3 [报告]
发表于 2009-03-16 14:27 |只看该作者
现在的问题是太大,20多G,怎么用引号引起来?

想用perl逐行来替代,又遇到个问题没法导入到数组里~

同时我又看了一下, 没有 '  " 这两个字符,不好意思

[ 本帖最后由 wanggd1983 于 2009-3-16 14:31 编辑 ]

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
4 [报告]
发表于 2009-03-16 14:28 |只看该作者
  1. [root@mysql01 ~]#awk '{ print "insert into table VALUES"  "(" "\"" $1 "\"" "," "\"" $2 "\"" "," "\"" $3 "\"" ","  "\"" $4 "\"" "," "\"" $5 "\"" "," "\"" $6 "\"" ");"  }' a         
  2. insert into table VALUES("1","34ed3","[])(8['\\\\\\\","0","12","34");
  3. [root@mysql01 ~]#cat a
  4. 1        34ed3        [])(8['\\\\\\\        0        12        34
  5. [root@mysql01 ~]#
复制代码


试试。

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
5 [报告]
发表于 2009-03-16 14:29 |只看该作者
要不你把表结构贴出来。

论坛徽章:
0
6 [报告]
发表于 2009-03-16 14:42 |只看该作者
表的结构大概这样子:
8-507212        ZZZXZZZZXXXZZXZZRZXXXUZZXZZZXUV        1        b        31
11-7935896        ZXZZX[[X[[[Z[Z[Z[[ZZZ[[Z[ZZ[X        1        b        29
8-240867        [[Z[[[[Z[[[[[[Z[ZZ[[Z[[[[[Z[Z        1        a        29
9-5955954        [Z[ZZ[[[[ZZZRZ[ZZ[JZZ[ZEMZZQQHWWUQWTRUGUOUUO        1        b        44
13-9175698        MSUSSSUVUXLXXPZZZZ[YZZYZ[ZZ[Z[Y[[ZZYZZZZ\\\\        2        a        44

前面几行没有问题,最后一行,因为"\"后面的tab是"\t",所以导入出现问题。

表是这样创建的:

DROP TABLE IF EXISTS `db`.`d3`;
CREATE TABLE  `db`.`d3` (
  `ID` varchar(15) NOT NULL,
  `quality` varchar(45) NOT NULL,
  `EB_hit` int(10) unsigned NOT NULL,
  `PE_flag` char(1) NOT NULL,
  `length` int(10) unsigned NOT NULL,
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

  同时,文件很大,可能在20G左右,多少行没统计,不知道mysql一个表能不能管理的过来

论坛徽章:
0
7 [报告]
发表于 2009-03-16 15:20 |只看该作者
晕,还要用shell弄!
load data infile ... into table ... filed escaped by ''就可以了,呵呵~意识是没有转义字符

[ 本帖最后由 andrefun 于 2009-3-16 17:45 编辑 ]

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
8 [报告]
发表于 2009-03-16 15:20 |只看该作者

回复 #6 wanggd1983 的帖子

没问题。

把\替换成\\即可。

论坛徽章:
0
9 [报告]
发表于 2009-03-16 15:32 |只看该作者

回复 #7 andrefun 的帖子

filed escaped by '@'

这个是啥? 不辞赐教:)

搞明白了,是 fields escaped by

再次感谢几位大虾:)

[ 本帖最后由 wanggd1983 于 2009-3-16 15:34 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2009-03-16 15:37 |只看该作者
查一下手册吧~说不定我还给你说错了,呵呵,以手册为准,上面说的肯定比我强多了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP