grep(Global search Regular Expression(RE) and Print out the line):是一个最初用于Unix操作系统的命令行工具。在给出文件列表或标准输入后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本。

grep命令格式:grep [OPTIONS] PATTERN [FILE...]

       常见的参数有:

               -i:匹配时忽略大小写

102250107.png


               -v:显示未匹配到的内容

102644157.png

-w:以单词来匹配

103105693.png

                --color=auto:匹配到的内容以红色标示

                -o:仅显示匹配到的部分,而不是显示整个行

103210513.png


grep命令的使用很简单,最精华的也是最难的部分主要体现在正则表达式。

正则表达式,又称正则表达式正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regexregexpRE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

字符描述
\转义字符
^匹配行首
$匹配行尾
*匹配其前的字符出现任意次
+匹配其前的字符至少出现一次
?匹配其前的字符出现零次或一次
{n}匹配其前的字符重复n次
{n,}匹配其前的字符至少出现n次
{n,m}匹配其前的字符至少出现n次,至多出现m次
?其前字符非贪婪匹配
.任意单个字符
x|y匹配x或y
[xyz]匹配所包含的任意一个字符
[^xyz]匹配未列出的任意字符
[a-z]匹配指定范围内的任意字符
[^a-z]匹配任何不在指定范围内的任意字符
\b词首匹配
\d匹配一个数字字符
\n匹配一个换行符
\r匹配一个回车符
\t匹配一个制表符。等价于\x09和\cI。
\w匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”。
\W匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。


只有多加练习才能真正掌握正则表达式的用法。

推荐一个学习正则表达式的好去处:正则表达式30分钟入门教程