首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从DeNormalized文本文件1构建规范化表?

如何从DeNormalized文本文件1构建规范化表?
EN

Stack Overflow用户
提问于 2013-12-07 19:39:21
回答 2查看 291关注 0票数 0

如何从DeNormalized文本文件1构建规范化的表?

谢谢你的答复/时间。

我们需要从DeNormalized文本文件构建一个规范化的DB表。我们探索了几个选项,如unix和PostgreSQL等。我希望从这个社区了解更好的解决方案。

输入的文本文件长度不同,带有逗号分隔的记录。内容可能如下所示:

代码语言:javascript
复制
XXXXXXXXXX , YYYYYYYYYY, TTTTTTTTTTT, UUUUUUUUUU, RRRRRRRRR,JJJJJJJJJ
111111111111,   22222222222, 333333333333, 44444444, 5555555, 666666
EEEEEEEE,WWWWWW,QQQQQQQ,PPPPPPPP

我们希望标准化如下(拆分和对):

代码语言:javascript
复制
XXXXXXXXXX , YYYYYYYYYY
TTTTTTTTTTT, UUUUUUUUUU
RRRRRRRRR,JJJJJJJJJ
111111111111,   22222222222
333333333333, 44444444
5555555, 666666
EEEEEEEE,WWWWWW
QQQQQQQ,PPPPPPPP

我们需要使用文本预处理和加载方法吗?

如果是的话,最好的预处理方法是什么?

是否有任何单一的SQL/函数方法来获得上面的内容?

谢谢你帮忙。

EN

回答 2

Stack Overflow用户

发布于 2013-12-07 19:45:48

使用gnu awk (由于RS)

代码语言:javascript
复制
awk '{$1=$1} NR%2==1 {printf "%s,",$0} NR%2==0' RS="[,\n]" file
XXXXXXXXXX,YYYYYYYYYY
TTTTTTTTTTT,UUUUUUUUUU
RRRRRRRRR,JJJJJJJJJ
111111111111,22222222222
333333333333,44444444
5555555,666666
EEEEEEEE,WWWWWW
QQQQQQQ,PPPPPPPP

{$1=$1}清理并删除额外的空间

NR%2==1 {printf "%s,",$0}打印奇数件

NR%2==0打印偶数部分和新行

RS="[,\n]"将记录设置为,或换行符

票数 4
EN

Stack Overflow用户

发布于 2013-12-12 01:28:03

这是最新消息。下面是我在Linux服务器上所做的工作。

代码语言:javascript
复制
    sed -i 's/\,,//g' inputfile   <------ Clean up lot of trailing commas

    awk '{$1=$1} NR%2==1 {printf "%s,",$0} NR%2==0' RS="[,\n]" inputfile <----Jotne's idea

    dos2unix -q -n inputfile outputfle <------ to remove ^M in some records

    outputfile is ready to process as comma delimited format  

是否有进一步改进上述措施的想法?

谢谢你帮忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20445701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档