免费注册 查看新帖 |

Chinaunix

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

遇到很难的数据提取问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-11 22:22 |只看该作者 |倒序浏览
文件a
1557|1|尊敬的客户:您发送的指有错误,请立即联系我们的客服,了解最新情况,感谢您使我们的热线电话,谢谢
撒法是,、由于24H热线。|FF|||
100171|2|尊敬的客户:对不起,我们的系统繁忙,请稍后再试,或者拔我们当地电话了解最新航线。。|FF|||
100172|1|尊敬的客户:对不起,我们的系统繁忙,请稍后再试。|FF|||
100172|2|尊敬的客户:您的“长途客票没有预定成功”业务办理未成功,请稍后再试。|FF|||
190048|1|我公司推出每月获赠积分活动;预定我们的航线将会获得更多的优惠;或者可以到我们的客服了解相关情况。,,
如有问题也请拔大我们的电话,谢谢。|FF|||
190048|3|我公司推出每月获赠积分活动2,请留意哦;预定我们的航线将会获得更多的优惠;或者可以到我们的客服了解相关情况。,如有问题也请拔大我们的电话,谢谢。
1、你可以在当地找营业厅。
2、你可以拔打我们的热线。|FF|||

文件b
1557|1|尊敬的客户:您发送的指有错误,请立即联系我们的客服,了解最新情况,感谢您使我们的热线电话,谢谢
撒法是,、由于24H热线。|FF|||
100171|2|尊敬的客户:对不起,我们的系统繁忙,请稍后再试,或者拔我们当地电话了解最新航线。。|FF|||
100172|2|尊敬的客户:您的“长途客票没有预定成功”业务办理未成功,请稍后再试。|FF|||
190048|1|我公司推出每月获赠积分活动;预定我们的航线将会获得更多的优惠;或者可以到我们的客服了解相关情况。,,
如有问题也请拔大我们的电话,谢谢。|FF|||

现在要想从a文件里,找到b文件里没有的数据。。
即获得结果
100172|1|尊敬的客户:对不起,我们的系统繁忙,请稍后再试。|FF|||
190048|3|我公司推出每月获赠积分活动2,请留意哦;预定我们的航线将会获得更多的优惠;或者可以到我们的客服了解相关情况。,如有问题也请拔大我们的电话,谢谢。
1、你可以在当地找营业厅。
2、你可以拔打我们的热线。|FF|||


描述下这个格式,其实是数据库格式,,第三个字段是text类型,所以有换行情况。,。请大家帮忙看看,谢谢!!

[ 本帖最后由 filwydb2 于 2009-11-11 22:37 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-11-11 22:27 |只看该作者
awk -F'|' 'NR==FNR{a[$1$2]++} NR>FNR&&!a[$1$2]' b a
但由于有些是换行的,所以获得的数据不准确,请大家帮忙看看,谢谢

论坛徽章:
0
3 [报告]
发表于 2009-11-11 22:33 |只看该作者
因为是数据库格式,所以就算换行了,字段还似乎7个啊,,能否从这里找突破点呢。

[ 本帖最后由 filwydb2 于 2009-11-11 22:39 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-11-11 22:37 |只看该作者
字段数总是7个或8个吗?

论坛徽章:
0
5 [报告]
发表于 2009-11-11 22:40 |只看该作者
原帖由 ywlscpl 于 2009-11-11 22:37 发表
字段数总是7个或8个吗?


兄弟,是7个。。

论坛徽章:
0
6 [报告]
发表于 2009-11-11 22:42 |只看该作者
每条记录结尾肯定是 |FF|||  吗?

论坛徽章:
0
7 [报告]
发表于 2009-11-11 22:43 |只看该作者
原帖由 filwydb2 于 2009-11-11 22:40 发表


兄弟,是7个。。


嗯,我数错了,应该是问6个或7个,根据你开始贴的数据

论坛徽章:
0
8 [报告]
发表于 2009-11-11 22:44 |只看该作者
原帖由 ywlscpl 于 2009-11-11 22:42 发表
每条记录结尾肯定是 |FF|||  吗?


很遗憾,不是哦,有些字段不是的,我列举了几行数据刚行是这样的。。

论坛徽章:
0
9 [报告]
发表于 2009-11-11 22:56 |只看该作者
原帖由 ywlscpl 于 2009-11-11 22:43 发表


嗯,我数错了,应该是问6个或7个,根据你开始贴的数据


呵呵,没事。,很郁闷,现在这里有一个文件大约有50多W数据。有一个文件有49W左右,可能就有3K左右不同的,现在想找出这3K多条不同的记录。
由于那些换行符的原因,导致入库也不行,所以希望可以用shell实现。

论坛徽章:
0
10 [报告]
发表于 2009-11-11 23:00 |只看该作者
字段数是定的吧,7个
  1. [root@Mylinux tmp]# awk -F "|"  'NF+NF1!=7{printf $0;NF1=NF1+NF-1;next}{print;NF1=0}' a>a1
  2. [root@Mylinux tmp]# awk -F "|"  'NF+NF1!=7{printf $0;NF1=NF1+NF-1;next}{print;NF1=0}' b>b1
  3. [root@Mylinux tmp]# awk -F "|" 'NR==FNR{a[$1"#"$2]}NR>FNR&&!($1"#"$2 in a)' b1 a1
  4. 100172|1|尊敬的客户:对不起,我们的系统繁忙,请稍后再试。|FF|||
  5. 190048|3|我公司推出每月获赠积分活动2,请留意哦;预定我们的航线将会获得更多的优惠;或者可以到我们的客服了解相关情况。,如有问题也请拔大我们的电话,谢谢。1、你可以在当地找营业厅。2、你可以拔打我们的热线。|FF|||
  6. [root@Mylinux tmp]#
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP