文件中的数据举例:
955,2018,10,1, ,FMSCCCM ,2018-10-19 15:04:55.511
602,2018,10,1,602,44638994,2018-10-22 02:49:28.944
608,2018,10,1,608,44638994,2018-10-22 02:49:28.946
610,2018,10,1,610,44638994,2018-10-22 02:49:28.948
期望结果是生成insert SQL:
insert into tablename values ('955','2018','10','1',' ','FMSCCCM' ,'2018-10-19 15:04:55.511');
insert into tablename values ('602','2018','10','1','602 ','44638994' ,'2018-10-22 02:49:28.944');
insert into tablename values ('608','2018','10','1','608 ','44638994' ,'2018-10-22 02:49:28.946');
insert into tablename values ('610','2018','10','1','610 ','44638994' ,'2018-10-22 02:49:28.948);
希望用shell 写个脚本,数据文件中的列数和行数是不确定的,所以行和列都不能写死。从
文件中读取每行每列的值放入SQL insert 语句中的values中。感谢各位大神提供指导和帮助!
我目前写的shell的把列写死了,但是实际情况中列数每次都不一样,可能7列,也可能十几列的,所以这里就不会写了!awk -F ","'{print $1}' 中$后面的数字可以是变量吗?
while read line
do
echo $line > tmp
col1=awk -F "," '{print $1}' tmp
col2=awk -F "," '{print $2}' tmp
col3=awk -F "," '{print $3}' tmp
col4=awk -F "," '{print $4}' tmp
col5=awk -F "," '{print $5}' tmp
col6=awk -F "," '{print $6}' tmp
col7=awk -F "," '{print $7}' tmp
echo "insert into tablename values ('$col1','$col2','$col3','$col4','$col5','$col6','$col7');"
done < test4.log