如何从DeNormalized文本文件1构建规范化的表?
谢谢你的答复/时间。
我们需要从DeNormalized文本文件构建一个规范化的DB表。我们探索了几个选项,如unix和PostgreSQL等。我希望从这个社区了解更好的解决方案。
输入的文本文件长度不同,带有逗号分隔的记录。内容可能如下所示:
XXXXXXXXXX , YYYYYYYYYY, TTTTTTTTTTT, UUUUUUUUUU, RRRRRRRRR,JJJJJJJJJ
111111111111, 22222222222, 333333333333, 44444444, 5555555, 666666
EEEEEEEE,WWWWWW,QQQQQQQ,PPPPPPPP我们希望标准化如下(拆分和对):
XXXXXXXXXX , YYYYYYYYYY
TTTTTTTTTTT, UUUUUUUUUU
RRRRRRRRR,JJJJJJJJJ
111111111111, 22222222222
333333333333, 44444444
5555555, 666666
EEEEEEEE,WWWWWW
QQQQQQQ,PPPPPPPP我们需要使用文本预处理和加载方法吗?
如果是的话,最好的预处理方法是什么??。
是否有任何单一的SQL/函数方法来获得上面的内容?
谢谢你帮忙。
发布于 2013-12-07 19:45:48
使用gnu awk (由于RS)
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]"将记录设置为,或换行符
发布于 2013-12-12 01:28:03
这是最新消息。下面是我在Linux服务器上所做的工作。
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 是否有进一步改进上述措施的想法?
谢谢你帮忙。
https://stackoverflow.com/questions/20445701
复制相似问题