目录
一、理论
1.grep
(1)grep解释
grep (Globally search a Regular Expression and Print)): 全局搜索一个正则表达式,并且打印到屏幕。简 单来说就是,在文件中查找关键字,并显示关键 字所在行。
(2)grep的常用选项
-i:查找时不区分大小写 加不加都一样
-v:显示不包含匹配文本的所有行(反向查询,反 向匹配)
-n:显示匹配行及行号
-c:只输出匹配到的总行数(不是匹配到的次 数)
-e:实现可多个查找条件的匹配,逻辑or关系
-E:支持使用扩展正则表达式,相当于使用 egrep命令
二、区别
1.单引号
单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换。
‘’号里面的所有字符都保持原样
2.双引号
双引号""是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容。
“”号里面遇到$,\等特殊字符会进行相应的变量替换。
3.对比
(1)引用内容不同
常量用单引号''括起,如果含有变量则用双引号""括起。
单引号与双引号的最大不同在于双引号仍然可以保有变数的内容,但单引号内仅能是一般字元 ,而不会有特殊符号。
(2)特殊字符
① $ 美元符
② \ 反斜杠
③ ` 反引号
④ " 双引号
这四个字符在双引号中是具有特殊含义的,其他都没有,而单引号使所有字符都失去特殊含义。
三、实验
1.查找一个\
(1)grep "\\" file
grep: Trailing backslash(不知原因)
(2) grep "\\\\" file
shell把四个\,转义成2个\传递给grep,grep再把2个\转义成一个\查找
(3)grep '\\' file
查找‘\’字符
shell没转义,直接把2个\传递给grep,grep再把2个\转义成一个\查找
2.查找一个a
(1) grep "$a" file
(2) grep '$a' file