一、grep命令 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
grep: 根據模式搜索文本,并將符合模式的文本行顯示出來
模式: 由文本字符和正則表達式的元字符組合成的匹配條件
命令格式: grep [options] [file...]
[root@hao log]# grep ' root ' /etc/ passwd root:x: 0 : 0 :root:/root:/bin/ bash operator:x: 11 : 0 :operator:/root:/sbin/nologin
命令選項:
-i(ignore case):忽略字符大小寫
--color[=when]:高亮顯示匹配字符,常用因此使用命令別名以便方便使用
root@hao ~]# grep --color ' root ' /etc/ passwd root:x: 0 : 0 :root:/root:/bin/ bash operator:x: 11 : 0 :operator:/root:/sbin/ nologin [root@hao ~]# alias ' grep=grep --color ' [root@hao ~]# grep ' root ' /etc/ passwd root:x: 0 : 0 :root:/root:/bin/ bash operator:x: 11 : 0 :operator:/root:/sbin/nologin
-v:顯示沒有被模式匹配到的行
-A n:表示匹配行后n行也顯示
-B n:表示匹配行前n行也顯示
-C n:表示匹配行前后n行都顯示
-o:只顯示被模式匹配到的字符串
[root@hao ~]# grep -o ' root ' /etc/ passwd root root root root
二、基本正則表達式元字符 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
首先創建測試文件
[root@hao ~]# cat /tmp/test.txt
a
b
ab
aab
acb
adb
amnb
amnbmnbmnb
元字符:
.? ? : 匹配任意單個字符
?
*?
:匹配其前面的字符任意次
?
.* :? 匹配任意長度的任意字符
\ ? :匹配其前面的字符1次或零次
\{m,n\} :匹配其前面的字符至少m次,至多n次。下面為a出現至少一次,之多三次之后是b
^ : 錨定行首,此字符后面的任意內容都必須出現在行首
$ :錨定行尾,此字符前面的任意內容必須出現在行尾
^$ :空白行
\< :其后面的任意字符必須作為單詞首部出現
\> :其前面的任意字符必須作為單詞的尾部出現
?
[] :匹配指定范圍內的單個字符
[^] :匹配指定范圍外的任意單個字符
[:digit:] [:lower:][:upper:][:punct:][:space:][:alpha:][:alnum:]: 字符集合
以數字結尾的行:
\(\): 分組。如下代碼匹配ab組合出現任意次。
分組主要目的是為了后向引用,也就是被括號括起來的內容,在以后再次引用。\1代表引用前面出現第一個小括號的內容。
三、擴展正則表達式元字符? (grep -E=egrep) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
元字符與上面相同的是
- .
-
[]
-
[^]
-
*
- ?沒有反斜線
- {m,n}? 沒有反斜線
- ^
- $?
-
^$
-
\<
- \>
- ()沒有反斜線
不同的是:
+:匹配其前面的字符至少一次
|:或者or的意思。C|cat的意思是C或者cat。(C|c)at代表Cat或者cat。以至少一個空白字符開頭的行:
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
