SQL文里因为包含单引号',所以在输出的时候需要特殊处理。
awk中的printf里面要输出单引号是:一个单引号+反斜杠+两个单引号
例:
假如csv文件格式:input.csv
csv文件内容
1,Robert
出力的sql文:output.sql
而有表aaa.tbl_name 里面有两列,id和name,假设两个都是需要加上单引号,则shell需要如下update文
awk -F ',' {if($1!="" && $2!=""){printf("update aaa.tbl_name\nset name='\''%s'\'' \nwhere id='\''%s'\'';\n",$2,$1)}} input.csv > output.sql