14.Linux之搜索命令

    grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹 配的行打印出來。格式:grep [option] pattern file。linux

    經常使用選項以下:git

-A 行數:顯示搜索結果那一行及該行以後指定行數的內容。正則表達式

-B 行數:顯示搜索結果那一行及該行以前指定行數的內容。工具

-C 行數:-A與-B的結合,顯示搜索結果那一行及該行以前和以後指定行數的內容。編碼

例如:grep -C 1 tzdata install.log 在install.log文件中搜索包含tzdata字符串的行,並顯示結果行及先後各一行的內容。結果顯示文件中有兩處符合搜索結果。spa

-c:統計符合搜索結果的總行數。字符串

-H:在顯示搜索結果那一行內容的前面標註所在文件。it

-h:與-H相反,在顯示搜索結果那一行內容的前面不標註所在文件。io

-i:忽略大小寫進行搜索。字符編碼

-L:與-l相反,列出不包含搜索結果的文件的文件名。

-l:與-L相反,列出包含搜索結果的文件的文件名。

-n:在顯示搜索結果那一行內容的前面標註所在行號。

-s:不顯示錯誤信息。

-v:顯示不包含搜索文本的行。

    經常使用匹配模式以下:

字符串或者「字符串」:最簡單的一種,例如grep tzdata install.log或者grep 「tzdata」 install.log。

^:匹配行的開始,例如'^grep'匹配全部以grep開頭的行。

$:匹配行的結束,例如'grep$'匹配全部以grep結尾的行。

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

*:匹配零個或多個先前字符,例如'*grep'匹配一個或多個空格後緊跟grep。

.*:一塊兒用表明任意字符。

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

[^]:匹配不在指定範圍內的其它任一字符,例如'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一個字母開頭,緊跟rep的行。

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

\<:匹配單詞的開始,如:'\<grep'匹配包含以grep開頭的單詞的行。

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

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

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

x\{m,n\}:重複x字符至少m次很少於n次,例如:'0\{5,10\}'匹配5--10個0的行。

\w:匹配文字和數字字符,也就是[A-Za-z0-9],例如:'G\w*p'匹配以G後跟零個或多個文字或數字字符,而後是p。

\W:\w的反置形式,匹配一個或多個非單詞字符,如點號句號等。

\b:單詞鎖定符,例如: '\bgrep\b'只匹配grep。

爲了在不一樣國家的字符編碼中保持一至,POSIX(The Portable Operating System Interface)增長了特殊的字符類,如[:alnum:]是[A-Za-z0-9]的另外一個寫法。要把它們放到[]號內才能成爲正則表達式,如[A- Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外,都支持POSIX的字符類。

[:alnum:]#文字數字字符   

[:alpha:]#文字字符   

[:digit:]#數字字符   

[:graph:]#非空字符(非空格、控制字符)   

[:lower:]#小寫字符   

[:cntrl:]#控制字符   

[:print:]#非空字符(包括空格)   

[:punct:]#標點符號   

[:space:]#全部空白字符(新行,空格,製表符)   

[:upper:]#大寫字符   

[:xdigit:]#十六進制數字(0-9,a-f,A-F)

相關文章
相關標籤/搜索