碰巧要用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中括在双引号中的三种特殊字符不被忽略:$ , / , ` , 即双引号会解释字符串的特别意思,而单引号直接使用字符串输出