加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

grep正则表达式后面的单引号和双引号的区别?

发布时间:2020-12-14 06:35:30 所属栏目:百科 来源:网络整理
导读:单引号: 可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。单引号 '' 是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换。 双引号: 把双引号内的内容输出出来;如果内容中有命令、变量等,会

单引号:

可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换。

双引号:

把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。双引号""是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容。

不加引号:

不会将含有空格的字符串视为一个整体输出,如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。

使用规则:

一般常量用单引号''括起,如果含有变量则用双引号""括起。

最大不同:

单引号与双引号的最大不同在于双引号仍然可以保有变数的内容,但单引号内仅能是一般字

元,而不会有特殊符号

使用举例:

“”号里面遇到$等特殊字符会进行相应的变量替换

‘’号里面的所有字符都保持原样

对于字符串,两者相同

匹配模式也大致相同

但有一些区别非常容易混淆

grep "$a" file #引用变量a,查找变量a的值

grep '$a' file #查找“$a”字符串

grep "" file #grep: Trailing backslash(不知原因)

grep '' file #查找‘’字符

1$美元符

2反斜杠

3`反引号

4" 双引号

这四个字符在双引号中是具有特殊含义的,其他都没有,而单引号使所有字符都失去特殊含义

如果用双引号,查找一个,就应该用四个:

grep "\" file这样就对了,这样等同于:

grep '' file

第一条命令shell把四个,转义成2传递给grepgrep再把2转义成一个查找

第二条命令shell没转义,直接把2传递给grepgrep再把2转义成一个查找

其实grep执行的是相同的命令

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读