grep命令正则表达式的用法,以及grep正则表达式元字符的说明,grep 正则表达式的几个例子 当使用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的行 二,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 '\<u.r\>' /etc/passwd
game:x:12:100:games:/usr/games:/sbin/nologin
在grep正则表达式中准确匹配所有包含两个字符的行?命令如下:
[root@devops ~]# grep '^..$' /
|