grep后加单引号、双引号和不加引号的区别

环境:VirtualBox4.1 + RedHat Linux 6 + Putty0.62

单引号:

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

双引号:

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

不加引号:

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

使用规则:

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

最大不同:

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

使用举例:

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

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

对于字符串,两者相同

匹配模式也大致相同

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

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

grep '$a' file #查找“$a”字符串 ---www.bianceng.cn

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

grep '\\' file #查找‘\’字符

1、$ 美元符

2、\ 反斜杠

3、` 反引号

4、" 双引号

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

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

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

grep '\\' file

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

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

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

时间: 2025-01-20 17:35:50

grep后加单引号、双引号和不加引号的区别的相关文章

PHP json字符串对特殊字符处理(单引号,双引号)

PHP json字符串对特殊字符处理(单引号,双引号)

php-新手问题(PHP单,双引号区别 以及 取余%怎么运算)

问题描述 新手问题(PHP单,双引号区别 以及 取余%怎么运算) 在PHP中,单引号和双引号有什么区别? 取余运算符怎么运算?例如7.5%3为什么结果是1; 7.5%3.5为什么结果也是1 解决方案 剩余的1.5取整了,舍弃小数,保留整数,余数没有小数 解决方案二: 剩余的1.5取整了,舍弃小数,保留整数,余数没有小数

如何给存储过程的变量加单引号

问题描述 如何给存储过程的变量加单引号 ALTER PROCEDURE [dbo].[FM_GuestBookRead] @TableName Nvarchar(50), @PostIp varchar(100) AS BEGIN Declare @strSQL Nvarchar(200) Set @strSQL='Select PostDate from '+ @TableName +' where postip='''+@PostIp+'' Execute(@strSQL) END 想要给p

sql语句中单引号,双引号的处理方法_MsSql

下面我们就分别讲述,虽然说的是Insert语句, 但是Select.Update.Delete语句都是一样的. 假如有下述表格:          mytabe          字段1    username     字符串型(姓名)          字段2    age          数字型(年龄)          字段3    birthday      日期型(生日)          字段4    marry        布尔型(是否结婚,结婚为True,未结婚为False)

sql语句中单引号,双引号的处理方法

下面我们就分别讲述,虽然说的是Insert语句, 但是Select.Update.Delete语句都是一样的. 假如有下述表格:          mytabe          字段1    username     字符串型(姓名)          字段2    age          数字型(年龄)          字段3    birthday      日期型(生日)          字段4    marry        布尔型(是否结婚,结婚为True,未结婚为False)

html-table用rowspan合并行后,单双行颜色问题,谢谢指导。

问题描述 table用rowspan合并行后,单双行颜色问题,谢谢指导. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" type="text/css" href="cs

jsp中form中的action后加?传参数问题

问题描述 jsp中form中的action后加?传参数问题 我实现的编辑界面但是对数据更改 提交后,数据并没有改变,servlet/AdminContoller调用了doget .dopost两种方法,跪求大神解答数据更改后为什么没有改变.. 解决方案 post提交,,action中?后的参数是获取不到的,,一般都是用一个隐藏域传参的 解决方案二: jsp form 表单或超链接传参数中文乱码问题小结form action中传递参数的问题form action中传递参数的问题 解决方案三: 加参

nagios监控单网卡双IP

公司的业务有几台服务器存放在IDC机房中,说是双线路.但是我看到网卡的配置是单网卡双IP的形式.如下: 而公司这边的线路是联通的IP,如下: nagios监控搭建在公司内部,由于南北线路联通的问题.导致公司这边nagios监控IDC机房中的服务器经常误报.特别是一大夜间,妹的,误报的信息多的都让人头疼.如下: 刚开始怀疑是公司路由器不稳定导致的.但是重启了几次后,还是这样的问题.,如下: 查看nagios监控其中一台服务器的IP地址为电信IP.如下: 在公司内部白天ping该IP地址,一切都正常

setTimeout()递归调用不加引号出错的解决方法_javascript技巧

用了setTimeout()想实现递归调用,如果第一个参数不加引号的话,火狐提示setTimeout():uselesssetTimeout call (missing quotes around argument?)如果加引号的话 ,火狐会提示那个函数undefined function refreshNum() { $.ajax({ type: "POST", url: "ajax/RefreshNum.ashx", async: false, data: {}