碰巧要用awk生成一段sql脚本,所以涉及到在语句中打印出单引号的问题.
EG1: 当为字符串时 echo aaa | awk '{print "select * from A where name='/''TOM'/''"}'
EG2: 当为一字段时 echo TOM | awk '{print "select * from A where name='/''"$1"'/''"}'
EG3: 当为shell中变量时 key=TOM; echo aaa | awk '{print "select * from A where name='/'''$key''/''"}'
说明:把转义的单引号要用单引号括起来如 awk '{print "'/''"}'
EG1:单引-双引-单引-转义单引-单引-keyStr-单引-转义单引-单引-双引-单引
EG2:单引-双引-单引-转义单引-单引-双引-keyStr-双引-单引-转义单引-单引-双引-单引
EG2:单引-双引-单引-转义单引-单引-单引-keyStr-单引-单引-转义单引-单引-双引-单引
注意 : awk中括在双引号中的三种特殊字符不被忽略:$ , / , ` , 即双引号会解释字符串的特别意思,而单引号直接使用字符串输出
本文介绍了如何利用awk工具生成包含特殊字符(如单引号)的SQL脚本。通过不同场景示例(字符串、字段及shell变量),展示了正确构造SQL语句的方法,并解释了awk中双引号与单引号的使用区别。
5440

被折叠的 条评论
为什么被折叠?



