標籤:二進位 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 命令使用樣本及詳解