我们如何从DeNormalized文本文件中build立Normalized表格?

我们如何从DeNormalized文本文件中build立Normalized表格?

感谢您的答复/时间。

我们需要从DeNormalized文本文件中build立一个Normalized DB Table。 我们探讨了几个选项,如Unix shell和PostgreSQL等。我期待从这个社区学习更好的决议。

input的文本文件是不同的长度,用逗号分隔的logging。 内容可能如下所示:

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 /函数的方法来获得上述?

感谢帮助。

使用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]"将记录设置为或换行

这是一个更新。 这是我在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 

任何想进一步改进上述步骤?

感谢帮助。