grep 的初級應用

grep的功能強大,是linux行編輯的三劍客。linux


那grep是如何工做的 呢 ???git

grep命令在一個或者多個文件中搜索字符串模板。模板能夠是一個被引用的字符串或者是一個單詞。ide

其後面全部字符串被看作文件名。grep把搜索結果送道屏幕,可是不影響輸入文件spa


格式內存

grep [OPTIONS] PATTERN [FILE...]字符串

grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]it

實例模板

grep user /etc/passwdclass

說明 grep 將在文件 /etc/passwd 下搜索 模板tom。若是成功,若是成功搜索的行將顯示在屏幕上。搜索


grep:

字符匹配

. 匹配任意一個單個字符  

[] 匹配[]內任意字符 ,[A-Z]從大寫A 到 Z ,其中 -表明範圍內任意次

posix字符集

        [[:digit:]] 數字

        [[:lower:]] 小寫字母

        [[:upper:]] 大寫字母

[[:space:]] 空格

[[:punct:]] 標點符號

[[:alpha:]] 字母(大寫+小寫)

[[:alnum:]] 數字+字母



次數匹配

* 匹配任意次

\? 匹配0次或1次

\{m,\} m次, 最少m次

\{0,n\} 最多n次

\{m,n\} 最多n次,最少m次

\是轉義字符  

grep 「\.5」

grep '5\..'

grep 「\.5」 表示打印包含字符串「.5」的行

用法

       \.   ,  \? ,  \(,\)  ,  \{,\}


位置匹配

^ 行首錨定

$ 行尾錨定


分組

\(\)

把分組內的數據,保存到內存中,方便引用

引用

\(\)...\(\)  $1$2   

     引用分組中 的內容,$1 表示引用第一個分組 ,$2 第二個分組

grep案例:

grep 「^【we】」      表示打印全部w或者e開頭的行。^表示 定詞首,括號裏的一個字符被匹配。

grep   「^【we】$」    表示打印全部只有w或者e。^表示 錨定詞首,$表示錨定詞尾

grep 「【a-z】\{9\}」    表示打印帶每一個字符串帶有9個連續字母的行

grep  「\bair 」        表示打印 文件中有air單詞的行     \b 是單詞邊界付  

grep  "aa*"               表示 打印  文件 中全部 帶 一個  或者 多個 a  。*表示0個或者多個

grep    「\<air\> 」   表示 打印   包含 air 的 行 。\<  表示是單詞的開頭 ,  \ >單詞結尾

grep -i 「^p.*」     表示打印,不區分大小寫,以P開頭,的任意字符的行

相關文章
相關標籤/搜索