Grep命令中正則表達式(regular Expressions,RE)的用法

當你在使用grep命令的時候確定會用到正則表達式,那麼怎麼在grep命令中使用正則表達式呢?正則表達式

正則表達式元字符bash

grep命令支持不少正則表達式的元字符,以使用戶可以更精準的定義要查找的模式。例如,能夠經過制定的選項來關閉大小寫敏感,要求顯示行號等。spa

元字符 功能 示例 匹配對象
^ 行首定位符 ‘^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次code

匹配出現的次數至少M次,但不超過N次對象

'u\{4\}u\{5\}字符串

u\{5,8\}'table

匹配連續出現4個u的行匹配連續出現最少5個u的行devops

匹配連續出現最少5個,最多8個u的行搜索

 

grep 正則表達式示例: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 '^..$' /
相關文章
相關標籤/搜索