歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix基礎知識

Unix下GREP的用法

grep(全局正則表達式版本)允許對文本文件進行模式查找,grep支持基本正則表達式,也支持其擴展集。

grep有三種變形:

grep 標准grep命令

egrep 擴展grep命令,支持基本及擴展的正則表達式,但不支持\q模式范圍的應用

fgrep 快速grep命令,允許查找字符串而不是一個模式,不要誤解fast,其實和grep速度相當

grep的一般格式:

grep [選項] 基本正則表達式 [文件] 這裡的基本正則表達式可為字符

使用雙引號:

字符串參數最好使用雙引號擴起來,一是以防被誤解為shell命令,二是可以用來查找多個單詞組成的字符串,在調用變量的時候也要使用雙引號,比如grep "$MYVAR",否則無結果,在調用模式匹配是,應使用單引號

grep的選項:

-c 只輸出匹配行的計數,比如grep -c "test" *.txt,將顯示4,則說明包含test的有4行

-i 不區分大小寫(只適用於單字符),比如grep -i "Bank" *.c等同於grep -i "bank" *.c

-h 查詢多文件時不顯示文件名

-l 查詢多文件時只輸出包含匹配字符的文件名

-n 顯示匹配行及行號,在顯示出內容的每行前面會顯示行數

-s 不顯示不存在或無匹配文本的錯誤信息

-v 顯示不包含匹配文本的所有行,grep -v "test" abc.txt,將顯示不包含"test"的行內容

-w 以單詞為單位進行匹配

-E 允許使用擴展模式匹配

grep和正則表達式:

使用正則表達式最好使用單引號括起來,避免參數被做為shell命令執行

^ 錨定行的開始如:'^grep'匹配所有以grep開頭的行。

$ 錨定行的結束 如:'grep$'匹配所有以grep結尾的行。

. 匹配一個非換行符的字符 如:'gr.p'匹配gr後接一個任意字符,然後是p。

* 匹配零個或多個先前字符 如:'*grep'匹配所有一個或多個空格後緊跟grep的行。 .*一起用代表任意字符。

[] 匹配一個指定范圍內的字符,如'[Gg]rep'匹配Grep和grep。

[^] 匹配一個不在指定范圍內的字符,如:'[^A-FH-Z]rep'匹配不包含A-F和H-Z字母開頭,緊跟rep的行。

\(..\)標記匹配字符,如'\(love\)',love被標記為1。

\< 錨定單詞的開始,如:'\ \> 錨定單詞的結束,如'grep\>'匹配包含以grep結尾的單詞的行。

x\{m\} 重復字符x,m次,如:'0\{5\}'匹配包含5個o的行。

x\{m,\} 重復字符x,至少m次,如:'o\{5,\}'匹配至少有5個o的行。

x\{m,n\} 重復字符x,至少m次,不多於n次,如:'o\{5,10\}'匹配5--10個o的行。

\w 匹配

查看本欄目更多精彩內容:http://www.bianceng.cn/OS/unix/

Copyright © Linux教程網 All Rights Reserved