Linux grep、egrep 命令使用樣本及詳解

來源:互聯網
上載者:User

標籤:二進位   search   expression   regular   

一、grep簡介

(1). grep (global search regular expression (RE) and print out the line ),[全面搜尋Regex並把行列印出來]是一種強大的文本搜尋工具,他們使用Regex搜尋文本,並且把匹配的行列印出來。

(2).grep家族包括grep、egrep和fgrep,其中egrep和fgrep的命令只跟grep有很小的不同。egrep是grep的擴充,支援更多的(RE)元字元.

(3)可用於shell指令碼,因為grep通過返回一個狀態值來說明搜尋的狀態,如果模板搜尋成功,則返回0,如果不成功,則返回1,如果搜尋不存在,則返回2,我們利用傳回值可以進行一些自動化的文本處理工作。


(4)文法說明:

    grep [options] PATTERN [FILE...]

  • -a或--text 不要忽略二進位的資料。

  • -A或--after-context= 除了顯示符合範本樣式的那一列之外,並顯示該列之後的內容。

  • -b或--byte-offset 在顯示符合範本樣式的那一列之前,標示出該列第一個字元的位編號。

  • -B或--before-context= 除了顯示符合範本樣式的那一列之外,並顯示該列之前的內容。

  • -c或--count 計算符合範本樣式的列數。

  • -C或--context=或- 除了顯示符合範本樣式的那一列之外,並顯示該列之前後的內容。

  • -d或--directories= 當指定要尋找的是目錄而非檔案時,必須使用這項參數,否則grep指令將回報資訊並停止動作。

  • -e或--regexp= 指定字串做為尋找檔案內容的範本樣式。

  • -E或--extended-regexp 將範本樣式為延伸的普通標記法來使用。

  • -f或--file= 指定範本檔案,其內容含有一個或多個範本樣式,讓grep尋找符合範本條件的檔案內容,格式為每列一個範本樣式。

  • -F或--fixed-regexp 將範本樣式視為固定字串的列表。

  • -G或--basic-regexp 將範本樣式視為普通的標記法來使用。

  • -h或--no-filename 在顯示符合範本樣式的那一列之前,不標示該列所屬的檔案名稱。

  • -H或--with-filename 在顯示符合範本樣式的那一列之前,表示該列所屬的檔案名稱。

  • -i或--ignore-case 忽略字元大小寫差別。

  • -l或--file-with-matches 列出檔案內容符合指定的範本樣式的檔案名稱。

  • -L或--files-without-match 列出檔案內容不符合指定的範本樣式的檔案名稱。

  • -n或--line-number 在顯示符合範本樣式的那一列之前,標示出該列的列數編號。

  • -q或--quiet或--silent 不顯示任何資訊。

  • -r或--recursive 此參數的效果和指定“-d recurse”參數相同。

  • -s或--no-messages 不顯示錯誤資訊。

  • -v或--revert-match 反轉尋找。

  • -V或--version 顯示版本資訊。

  • -w或--word-regexp 只顯示全字元合的列。

  • -x或--line-regexp 只顯示全列符合的列。

  • -y 此參數的效果和指定“-i”參數相同。

  • --help 線上協助。


grepRegex元字元

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

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/57/92/wKioL1SekTnyZRdXAABfy0dDz0Y605.jpg" title="1.png" alt="wKioL1SekTnyZRdXAABfy0dDz0Y605.jpg" />


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

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/57/92/wKioL1Sekhjz12NOAABf7X4PVTA942.jpg" title="1.png" alt="wKioL1Sekhjz12NOAABf7X4PVTA942.jpg" />


.    匹配一個非分行符號的字元 例如:‘gr.p‘ 匹配gr後面接一個任一字元,然後是p。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/57/92/wKioL1Sek1-TcY0XAABdTHTl5eE410.jpg" title="2.png" alt="wKioL1Sek1-TcY0XAABdTHTl5eE410.jpg" />


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

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/57/95/wKiom1SelReQNIv_AAClEf8sRJs235.jpg" title="3.png" alt="wKiom1SelReQNIv_AAClEf8sRJs235.jpg" />


[]  匹配一個指定範圍內的字元 例如:‘[Gg]rep‘ 匹配Grep和grep.

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/57/92/wKioL1Sel3iTSRT8AAA-1qieyZE214.jpg" title="4.png" alt="wKioL1Sel3iTSRT8AAA-1qieyZE214.jpg" />

[^] 匹配一個不在指定範圍內的字元,例如:‘[^A-EG-Z]rep‘ 匹配不包含A-EG-Z開頭,緊跟rep的行

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/57/92/wKioL1SemP_h3zKzAABKzmKoJeA003.jpg" title="5.png" alt="wKioL1SemP_h3zKzAABKzmKoJeA003.jpg" />


本文出自 “阿俊部落格” 部落格,請務必保留此出處http://ssc4469.blog.51cto.com/6315913/1596616

Linux grep、egrep 命令使用樣本及詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.