文档介绍:1).简单的grep
grep [option] PATTERM [file...]
#grep 'root' /etc/passwd
-E:使用扩展正则表达式
-F:使用固定字符串进行匹配
-l:列出匹配模式的文件名称,而不是打印匹配的行
-q:静默模式,匹配grep则成功退出,不匹配则写入标准输出
-S:不显示错误信息
-i:忽略字符大小写
--color:显示颜色
# alias grep='grep --color'
# grep 'root' /etc/passwd
-v :反向查找,显示没有被模式匹配到的行
-o:只显示被模式匹配到的字符串
2).基本正则表达式
meta字符
.:匹配任意单个字符
# grep 'r..t' /etc/passwd
*:匹配其前面的字符任意次
a*b b,aab, 即a出现任意次以后跟一个b
^:锚定行首,此字符后面的任意内容必须出现在行首
# grep '^r..t' /etc/passwd
$:锚定行尾,此字符前面的任意内容必须出现在行尾
# grep 'w$' /etc/passwd
# grep 'r..t$' /etc/passwd
^...$:整个字符串
^$: 空白行
# grep '^$' /etc/passwd 查看空白行
$ cc -E | grep -v '^$' >
#先使用grep -v显示不匹配的行(即非空白行),重定向到新的文件,从而过滤文件中空白行
链接:
cc -E :这个选项是相对标准的,它允许修改命令行以使编译程序把预先处理的C文件发到标准输出,而不实际编译代码.
在查看C预处理伪指令和C宏时,,然后用编辑程序来分析:
$cc -c -E >
#.
#以后可以用编辑程序或者分页命令分析这个文件,并确定最终的C语言代码看起来如何.
\{n,m\}:匹配其前单个字符重现的次数区间,n-m次,匹配其前的字符至少n次,至多m次
n与m的值必须介于0至RE_DUP_MAX(含)之间
$ getconf RE_DUP_MAX 获得值
\{n\}:重现n次
\(n,\}:至少重现n次
\{1,\} ;至少一次
\{\} :至多三次
# grep 'a\{1,3\}b'
ab aab aaab
# grep 'a.\{1,3\}b'
aab acb amnb amnbnnhb
练****1:以abcABCdefDEF匹配
^ABC 不匹配
def 匹配
def$ 不匹配
[[:upper:]]\{3\} 匹配,居中456ABC匹配
[[:upper:]]\{3\}$ 匹配,结尾DEF匹配
^[[:alpha:]]\{3\} 匹配,起始abc匹配
.*:任意长度的任意字符
# a.*b a开头b结束中间任意
贪婪模式:默认情况下正则表达式工作在贪婪模式,尽可能长匹配
?:匹配