本章目录
1. 正则表达式概述
1.1 基础正则表达式
1.2 元字符类型
2. grep 概述
2.1 grep 的 基本用法和格式
2.2 grep 中的 正则表达式(操作实例)
1. 正则表达式概述
正则表达式又称正规表达式、常规表达式。是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,简单来说, 是一种匹配字符串的方法,通过一些特殊符号,实现快速查找、删除、替换某个特定字符串。
正则表达式一般用于脚本编程与文本编辑器中。很多文本处理器与程序设计语言均支持正则表达式,例如 Linux 系统中常见的文本处理器(grep、egrep、sed、awk)以及应用比较广泛的 Python 语言。正则表达式具备很强大的文本匹配功能,能够在文本海洋中快速高效地处理文本。
1.1 基础正则表达式
正则表达式的字符串表达方法根据不同的严谨程度与功能分为基本正则表达式与扩展正则表达式。基础正则表达式是常用正则表达式最基础的部分。
在 Linux 系统中常见的文件处理工具中 grep 与 sed 支持基础正则表达式,而 egrep 与 awk 支持扩展正则表达式。
1.2 元字符类型
^:锚定行的开始 | 如:'^grep' 匹配所有以 grep 开头的行。 |
$:锚定行的结束 | 如:'grep$' 匹配所有以 grep 结尾的行。 |
.:匹配一个非换行符的字符 | 如:'gr.p' 匹配gr后接一个任意字符,然后是 p。 |
*:匹配零个或多个先前字符 | 如:'*grep' 匹配所有一个或多个空格后紧跟 grep 的行。 |
[ ]:匹配一个指定范围内的字符 | 如:'[Gg]rep' 匹配 Grep 和 grep。 |
[^]:匹配一个不在指定范围内的字符 | 如:'[^A-FH-Z]rep' 匹配不包含 A-R 和 T-Z 的一个字母开头,紧跟 rep 的行。 |
/(../):标记匹配字符 | 如:'/(love/)',love 被标记为 1 。 |
/<:锚定单词的开始 | |
/>:锚定单词的结束 | 如:'grep/>' 匹配包含以 grep 结尾的单词的行。 |
x/{m/}:重复字符x,m次 |
如:'o/{5/}' 匹配包含5个 o 的行。 x/{m,/} 重复字符 x ,至少 m 次; 如:'o/{5,/}' 匹配至少有5个 o 的行。 |
x/{m,n/}:重复字符x | 至少m次,不多于n次,如:'o/{5,10/}' 匹配 5--10 个 o 的行。 |
/w:匹配文字和数字字符 |
也就是 [A-Za-z0-9_],如:'G/w*p' 匹配以 G 后跟零个或多个文字或数字字符,然后是 p 。 |
/W:/w的反置形式 | 匹配一个或多个非单词字符,如点号句号等。 |
/b:单词锁定符 | 如: '/bgrep/b' 只匹配 grep 。 |
.*:一起用代表任意字符 |
2. grep 概述
grep 命令是一种强大的文本搜索工具 , 根据用户指定的 “模式” 对目标文本进行匹配检查 , 打印匹配到的行由正则表达式或者字符及基本文本字符所编写的过滤条件确定。
2.1 grep 的 基本用法和格式
2.2 grep 中的 正则表达式(操作实例)
-