我是Unix的新手,需要一些帮助。 我有以下格式的Excel文件。
表,列,数据类型,输入格式
TableA,col1,int,TEXTFILE
TableA,col2,string,TEXTFILE
TableA,col3,float,TEXTFILE
TableA,col4,int,TEXTFILE
TableB,col1,string,TEXTFILE
TableB,col2,int,TEXTFILE
TableB,col3,int,TEXTFILE
同样,我有100张桌子的记录。
我需要使用Unix为所有这100个表创建配置单元表的ddl语句。
例如:
create table TableA(col1 int ,col2 string,col3 float,col4 int) STORED AS TEXTFILE;
create table TableB(col1 string ,col2 int,col3 int) STORED AS TEXTFILE;
能帮我解决这个问题吗?
谢谢
答案 0 :(得分:1)
您可以准备awk脚本
awk -F ',' '{
a[$1] = a[$1] " " $2 " " $3 ","; #read the column/dtype into array
b[$1] = $4 ; #read the file format
}END{
for (i in a ) #loop through the concatenated string
{ gsub(/,$/, ")" ,a[i] ); #replace last comma with ")"
print "CREATE TABLE " i " (" a[i] " STORED AS " b[i] ;
}
}' filename