用\转义好像不行耶!
如:
echo "something" | awk '{print "\'"}'
时提示输入下一行,但下一行输入"
报错:
awk: cmd. line:1: {print "\}'
awk: cmd. line:1: ^ unterminated string
谁来帮小弟一把!
awk中打印单引号
碰巧要用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中括在双引号中的三种特殊字符不被忽略:$ , \ , ` , 即双引号会解释字符串的特别意思,而单引号直接使用字符串输出
举个栗子:
cat bok.txt |awk '{print $1" "$2" "$3" "$4 " where uid='\''"$5"'\''"}'
update object_uploadVideo set raw_file_path='/upload/video/share/XXXXXXXX-7964-11e5-803e-d43d7e0625c8.mpg' where uid='XXXXXXXX-7964-11e5-803e-d43d7e0625c8'
http://blog.oracle.com.cn/index.php/42136/viewspace-4800.html
这个哥们好像更详细:http://www.cnblogs.com/emanlee/p/3620785.html
awk输出单引号,双引号
双引号:
awk '{print "\""}' #放大:awk '{print " \" "}'
使用“”双引号把一个双引号括起来,然后用转义字符\对双引号进行转义,输出双引号。
单引号:
awk '{print "'\''"}' # 放大: awk '{print " ' \ ' ' " }'
使用一个双引号“”,然后在双引号里面加入两个单引号‘’,接着在两个单引号里面加入一个转义的单引号\',输出单引号。
uuid输出双引号包裹起来示例:
cat bok.txt |awk '{print $1" "$2" "$3" "$4 " where uid=\""$5"\""}'
update object_uploadVideo set raw_file_path='/upload/video/share/XXXXXXXX-7964-11e5-803e-d43d7e0625c8.mpg' where uid=“XXXXXXXX-7964-11e5-803e-d43d7e0625c8”
awk处理特殊字符(原创)之反引号(``),反斜杠 backslash-escaped( \ ):
http://czmmiao.iteye.com/blog/1887660
如:
echo "something" | awk '{print "\'"}'
时提示输入下一行,但下一行输入"
报错:
awk: cmd. line:1: {print "\}'
awk: cmd. line:1: ^ unterminated string
谁来帮小弟一把!
awk中打印单引号
碰巧要用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中括在双引号中的三种特殊字符不被忽略:$ , \ , ` , 即双引号会解释字符串的特别意思,而单引号直接使用字符串输出
举个栗子:
cat bok.txt |awk '{print $1" "$2" "$3" "$4 " where uid='\''"$5"'\''"}'
update object_uploadVideo set raw_file_path='/upload/video/share/XXXXXXXX-7964-11e5-803e-d43d7e0625c8.mpg' where uid='XXXXXXXX-7964-11e5-803e-d43d7e0625c8'
cat /tmp/xxy_month_2.txt |awk '{print "select FQQ as QQNumber,count(*) as total_times from Tbl_ExchangeHistory where FQQ='\''"$1"'\'' group by FQQ;"}';
http://blog.oracle.com.cn/index.php/42136/viewspace-4800.html
这个哥们好像更详细:http://www.cnblogs.com/emanlee/p/3620785.html
awk输出单引号,双引号
双引号:
awk '{print "\""}' #放大:awk '{print " \" "}'
使用“”双引号把一个双引号括起来,然后用转义字符\对双引号进行转义,输出双引号。
单引号:
awk '{print "'\''"}' # 放大: awk '{print " ' \ ' ' " }'
使用一个双引号“”,然后在双引号里面加入两个单引号‘’,接着在两个单引号里面加入一个转义的单引号\',输出单引号。
uuid输出双引号包裹起来示例:
cat bok.txt |awk '{print $1" "$2" "$3" "$4 " where uid=\""$5"\""}'
update object_uploadVideo set raw_file_path='/upload/video/share/XXXXXXXX-7964-11e5-803e-d43d7e0625c8.mpg' where uid=“XXXXXXXX-7964-11e5-803e-d43d7e0625c8”
awk处理特殊字符(原创)之反引号(``),反斜杠 backslash-escaped( \ ):
http://czmmiao.iteye.com/blog/1887660
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/2598/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2015-10-26 14:57
评论列表