grep(Global search Regular Expression(RE) and Print out the line):是一个最初用于Unix操作系统的命令行工具。在给出文件列表或标准输入后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本。
grep命令格式:grep [OPTIONS] PATTERN [FILE...]
常见的参数有:
-i:匹配时忽略大小写
-v:显示未匹配到的内容
-w:以单词来匹配
--color=auto:匹配到的内容以红色标示
-o:仅显示匹配到的部分,而不是显示整个行
grep命令的使用很简单,最精华的也是最难的部分主要体现在正则表达式。
正则表达式,又称正则表达式、正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
字符 | 描述 |
\ | 转义字符 |
^ | 匹配行首 |
$ | 匹配行尾 |
* | 匹配其前的字符出现任意次 |
+ | 匹配其前的字符至少出现一次 |
? | 匹配其前的字符出现零次或一次 |
{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分钟入门教程