awk 打印单引号和双引号

今天遇到一个问题

awk 如何打印单引号和双引号

[[email protected] ~]# echo | awk ‘{print "\"" }‘ 
"

or

[[email protected] ~]# echo |awk ‘{print "\x22"}‘
"
[[email protected] ~]# echo | awk "{print \"‘\" }"  # 比较喜欢这个方式,简单、容易理解
‘

or

[[email protected] ~]# echo |awk ‘{print "‘\‘‘"}‘  
‘

or

[[email protected] ~]# echo |awk ‘{print "\x27"}‘
‘

换成awk ‘{print "‘\‘‘"}‘

会换成

awk ‘{print " ‘

\‘

‘ "}‘

awk "{ print \" ‘ \"}"

awk "{ print \"

\"}"

括在双引号中的三种特殊字符不被忽略:$,\,` ,即双引号会解释字符串的特别意思,而单引号直接使用字符串输出.

再熟悉一遍单引号、双引号处理特殊字符的不同

那么shell如何处理特殊字符的呢
1. 单引号 ( ‘ ‘ )
如果我们想查找的是Susan Goldberg,不能直接使用grep Susan Goldberg phonebook命令,grep会把Goldberg和phonebook当作需要搜索的文件 
[email protected][script]$ grep ‘Susan Gold‘ phonebook 
Susan Goldberg 403-212-4921 
当shell碰到第一个单引号时,它忽略掉其后直到右引号的所有特殊字符 
2. 双引号 ( " " )
双引号作用与单引号类似,区别在于它没有那么严格。单引号告诉shell忽略所有特殊字符,而双引号只要求忽略大多数,具体说,括在双引号中的三种特殊字符不被忽略:$,\,` ,即双引号会解释字符串的特别意思,而单引号直接使用字符串.如果使用双引号将字符串赋给变量并反馈它,实际上与直接反馈变量并无差别。如果要查询包含空格的字符串,经常会用到双引号。
[email protected][script]$ x=* 
[email protected][script]$ echo $x 
hello.sh menus.sh misc.sh phonebook tshift.sh 
[email protected][script]$ echo ‘$x‘ 
$x 
[email protected][script]$ echo "$x" 

这个例子可以看出无引号、单引号和双引号之间的区别。在最后一种情况中,双引号告诉shell在引号内照样进行变量名替换,所以shell把$x替换为*,因为双引号中不做文件名替换,所以就把*作为要显示的值传递给echo。 
对于第一种情况需要进一步说明,shell在给变量赋值时不进行文件名替换(这从第三种情况中也能看出来),各步骤发生的精确次序如下: 
shell扫描命令行,把x的值设为星号*; 
shell再次扫描命令行,碰到星号*,把它替换成当前目录下的文件清单; 
shell启动执行echo命令,把文件清单作为参数传递给echo. 
这个赋值的先后次序非常重要:shell先作变量替换,然后作文件名替换,最后把这行处理为参数 
3. 反引号(``) 
命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。shell中有两种方法作命令替换:把shell命令用反引号或者$(...)结构括起来,其中,$(...)格式受到POSIX标准支持,也利于嵌套。 
[email protected][script]$ echo The date and time is `date` 
The date and time is 三 6月 15 06:10:35 CST 2005 
[email protected][script]$ echo Your current working directory is $(pwd) 
Your current working directory is /home/howard/script 
4. 反斜杠 backslash-escaped( \ )
反斜杠一般用作转义字符,或称逃脱字符,linux如果echo要让转义字符发生作用,就要使用-e选项,且转义字符要使用双引号
echo -e "\n"

反斜杠的另一种作用,就是当反斜杠用于一行的最后一个字符时,shell把行尾的反斜杠作为续行,这种结构在分几行输入长命令时经常使用。

时间: 2024-10-12 03:47:47

awk 打印单引号和双引号的相关文章

awk输出单引号,双引号

双引号: awk '{print "\""}'        #放大:awk '{print "  \"  "}' 使用“”双引号把一个双引号括起来,然后用转义字符\对双引号进行转义,输出双引号. 单引号: awk '{print "'\''"}'       # 放大: awk '{print  "  '  \  '  '   " }' 使用一个双引号“”,然后在双引号里面加入两个单引号‘’,接着在两个单

单引号中有双引号,双引号还需要引号怎么办

单引号中有双引号,双引号还需要引号怎么办     今天,我在做一个日历控件时,发现在拼接HTML中的input时,出现引号里还有引号:     '<input type="button" onclick="findSearch("MU")"'/>     结果,火狐浏览器出现"死机"现象.     将findSearch中的双引号改为单引号,结果出现报错提示:     后来将findSearch中的双引号利用转义字

Oracle 中单引号和双引号的区别

问题产生原因: insert into t_Cluster_Showresult(Outhostname,Domainlist,Iplist,Classify) values ("2014512-7","www.renren.com\twww.baidu.com","192.168.2.1","2") 此条语句执行不成功,报错列不允许,经查,是因为双引号的问题,改成insert into t_Cluster_Showresul

Linux Shell 中的反引号,单引号,双引号

反引号 反引号位 (`) 位于键盘的Tab键的上方.1键的左方.注意与单引号(')位于Enter键的左方的区别. 在Linux中起着命令替换的作用.命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置. 如下,shell会执行反引号中的date命令,把结果插入到echo命令显示的内容中. [[email protected] sh]# echo The date is `date` The date is 2016年 08月 7日 星期日  19:25:43 CST 单引号,双

PHP教程:PHP中单引号与双引号的区别分析

PHP教程:PHP中单引号与双引号的区别分析 在PHP中,我们可以使用单引号或者双引号来表示字符串.不过我们作为开发者,应该了解其中的区别.单引号与双引号对于定义字符一个是可以解析变量一个是会把变量直接输出来,同时单引号与双引号在字符处理上单引号要优与双引号 ①转义的字符不同 单引号和双引号中都可以使用转义字符(\),但只能转义在单引号中引起来的单引号和转义转义符本身.如果用双引号("")括起字符串,PHP懂得更多特殊字符串的转义序列. 1 ②对变量的解析不同 单引号字符串中出现的变量

Unix Shell中单引号、双引号字符、反斜杠、反引号的使用

在执行shell脚本的时候,shell将会对脚本中的行进行解释,然后执行:对于一些特殊处理的句子,我们可以使用引号或者反斜线来避免shell解释执行之.如下,当在命令行中输入:echo *child.sh env_variable father.sh param.sh profile.sh 125017.sh默认会将当前文件夹下的所有文件都打印出来,但我们需要的是输出一个“*”.可以以这样的方式让shell不去解释星号(*):echo "*"* 下面是shell引用类型--------

每日linux命令学习-引用符号(反斜杠\,单引号&#39;&#39;,双引号&quot;&quot;)

引用符号在解析器中保护特殊元字符和参数扩展,其使用方法有3种:反斜杠(\),单引号(''),双引号(""). 单引号和双引号必须匹配使用,均可在解析器中保护特殊元字符和通配符,但是单引号(硬转义)主要用于信息的原样输出,防止任何变量的扩展,双引号(软转义)允许变量扩展.转义符和命令替换.单引号保护双引号,双引号保护单引号. 1. 反斜杠 反斜杠通过解析器将1个字符转化为引用符号或转义. 1)在单引号内使用反斜杠,反斜杠不会被解析,保持原样输出. 2)在双引号内使用反斜杠,主要用于美元符

linux 单引号,双引号,反引号

单引号目的: 为了保护文字不被转换.除了他本身. 就是说除去单引号外, 在单引号内的所有文字都是原样输出.1. [[email protected] SP49EP9]# echo '$*><!'    $*><!2. [[email protected] SP49EP9]# echo 'she is crying: "help"'    she is crying: "help"3. [[email protected] SP49EP9]#

shell中单引号、双引号、反斜杠简说

需求:ssh远程修改文件,变量从文件中获取,插入远程服务器的文件里 shell脚本中的单引号和双引号一样都是字符串的界定符,而不是字符的界定符.单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号.(注意是所有,只是单引号本身不能够出现在其中). 双引号用于保持引号内所有字符的字面值(回车也不例外),但以下情况除外: $加变量名可以取变量的值 反引号仍表示命令替换 \$表示$的字面值 \`表示`的字面值 \"表示"的字面值 \\表示\的字面值