grep命令正则表达式用法 grep正则元字符

发布时间:2019-09-13编辑:脚本学堂
本文介绍了grep命令正则表达式的用法,以及grep正则表达式元字符的说明,grep 正则表达式的几个例子,感兴趣的朋友参考下。

当使用linuxjishu/14086.html target=_blank class=infotextkey>grep命令多会用到正则表达式,如何在grep命令中使用正则表达式?

一,正则表达式元字符

grep命令支持很多正则表达式的元字符,以使用户能够更精准的定义要查找的模式。
例如,通过制定的选项来关闭大小写敏感,要求显示行号等。
 

元字符  功能  示例  匹配对象
^  行首定位符  ‘^user’  匹配所有以user开头的行
$  行尾定位符  ’user$’  匹配所以以user结尾的行
。  匹配一个字符  ‘u.r’  匹配包含一个u,后跟一个字符,再跟一个r的行
*  匹配两个或多个前导字符  ’u*ser’  匹配包含零个或多个u后,跟ser模式的行
[]  匹配一组字符中的人一个  ‘[uU]ser’ 匹配包含user或者User的行
[^]  匹配不在指定字符组里的字符 ’[^A-S]ser‘  匹配一个不在A到S之间的字符,并且该字符后紧跟着ser的行
<  词首定位符  ’<user‘ 匹配包含以user开头的词的行
>  词尾定位符  ’user>‘ 匹配包含以user结尾的词的行
<..>  标记匹配到的字符 ’<user>’ 匹配包含<user>的行
{M}{M,}{M,N}  匹配重复出现的次数M次匹配出现的次数至少M次

匹配出现的次数至少M次,但不超过N次
 

u{4}u{5}
u{5,8}’

匹配连续出现4个u的行匹配连续出现最少5个u的行
匹配连续出现最少5个,最多8个u的行

二,grep 正则表达式的例子

在/etc/passwd文件中找包含“user1“字符串的行:
 

[root@devops ~]# grep user1 /etc/passwd
user1:x:502:503::/home/user1:/bin/bash

忽略大小写的区做搜索,可以使用-i选项:
 

#grep  user1 /etc/passwd

可以使用”.”元字符为一个单个的字符做匹配,例如以下命令去匹配一个以”u”开头,以“r”结尾,中间是任意一个字符的行。
 

[root@devops ~]# grep '&lt;u.r&gt;' /etc/passwd
game:x:12:100:games:/usr/games:/sbin/nologin

在grep正则表达式中准确匹配所有包含两个字符的行?命令如下:
 

[root@devops ~]# grep '^..$' /

以上介绍了grep命令中正则表达式的用法,希望对大家有所帮助。