grep
是一个非常流行的工具,用于匹配给定文本中的给定搜索模式。grep提供了一个简单的glob搜索,但也提供了regex支持,这对于复杂的搜索ant匹配非常有用。在本教程中,我们将研究如何使用正则表达式模式。
使用Grep启用Regex
默认情况下 grep
不支持 regex
模式。我们可以启用 regex
对于 grep
具有 -E
选项如下。 -E
选项意味着扩展grep的高级功能,如 regex
.
$ grep -E 'ismail' /etc/passwd
或者我们可以使用别名 egrep
这和 grep -E
就像下面一样。
$ egrep 'ismail' /etc/passwd
匹配行首
我们可以把这条线的起点和 ^
在搜索模式的开头使用它进行签名。在本例中,我们将列出以 d
.
$ egrep '^d' /etc/passwd

匹配行尾
我们也可以把线的末端和 $
签字。我们会把 $
并提供我们要匹配的最后一个字符。在本例中,我们将尝试匹配 nologin
在队伍的尽头。
$ egrep 'nologin$'

包含给定文本的行
我们也可以使用它来匹配给定的模式,而无需任何特殊用法。我们将匹配条件 mail
和grep在一起。
$ egrep 'mail' /etc/passwd
匹配大写字母
我们可以把大写字母和 [AZ]
或 [[:upper:]]
就像下面一样。
$ egrep '[[:upper:]]' /etc/passwd

匹配小写字母
我们可以把大写字母和 [az]
或 [[:lower:]]
就像下面一样。
$ egrep '[[:lower:]]' /etc/passwd

忽略大小写匹配
在前面的示例中,我们已经匹配了大小写字母,但是如果我们需要通过忽略给定术语的大小写来匹配,该怎么办。我们将提供 -i
选项如下。
$ egrep -i 'r' /etc/passwd

匹配任何单个字符
如果我们想匹配任何一个字符,我们可以使用 .
意思是一个角色。在本例中,我们将匹配 r..t
.
$ egrep 'r..t' /etc/passwd
逻辑或多模式
我们可以使用 |
. 在本例中,我们将匹配 root
或 ismail
.
$ egrep 'root|ismail' /etc/passwd
匹配空行
我们可以通过使用 ^
和 $
就像下面一样。
$ egrep '^
匹配数字
我们可以将包含数字或数字的行与 [09]
或 [[:digit:]]
就像下面一样。
$ egrep '[[:digit:]]' /etc/passwd

/etc/passwd

相关文章: 如何使用Sed查找和替换文件或标准输入中的文本