把数据转换成sql语句,主要用户移植数据库的时候使用,或批量插入数据的时候使用
方法如下(数据格式的分隔符为tab):
1.用ultraedit编辑器最简单,只需简单的替换就行了,^t替换为',',^p替换为')^p,列模式下在每行的开始处输入insert .... (' .
2.用脚本实现,如sed,awk等命令,在linxu下使用脚本前先使用dos2unix命令把数据的文本文件转换一下,如下awk(dataToSql.awk)脚本:
dos2unix source.txt
调用命令:awk -f dataToSql.awk source.txt>taget.txt
3.通过写程序
方法如下(数据格式的分隔符为tab):
1.用ultraedit编辑器最简单,只需简单的替换就行了,^t替换为',',^p替换为')^p,列模式下在每行的开始处输入insert .... (' .
2.用脚本实现,如sed,awk等命令,在linxu下使用脚本前先使用dos2unix命令把数据的文本文件转换一下,如下awk(dataToSql.awk)脚本:
dos2unix source.txt
BEGIN{
#把数据转换成数据库插入的方式如:a b c转换成('a','b','c')
FS="\t";
}
{
#NF是每行的字段
#NR是当前行号
for(i=1;i<=NF;i++){
#cl[NR]=cl[NR]"\47"$i"\47"",";
if(i==1){#第一列
cl[NR]="(""\47"$i"\47"",";
}else if(i==NF){#最后一列
cl[NR]=cl[NR]"\47"$i"\47"")";
}else{
cl[NR]=cl[NR]"\47"$i"\47"",";
}
}
}
END{
for(key in cl){#打印
print cl[key];
}
}
调用命令:awk -f dataToSql.awk source.txt>taget.txt
3.通过写程序