一、grep ---- “行過濾工具”
grep ( global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來 )是一種強大的文本搜索工具,它能使用正則表達式搜索文本,查找包含某些字符串的行或符合某個模式(Pattern)的一類字符串的行,並把匹配的行打印出來。
grep可用於shell腳本,因爲grep通過返回一個狀態值來說明搜索的狀態,如果模板搜索成功,則返回0,如果搜索不成功,則返回1,如果搜索的文件不存在,則返回2。我們利用這些返回值就可進行一些自動化的文本處理工作。
grep -E :以 擴展模式匹配
egrep :正則匹配工具
二、grep 命令歸納
語法:grep [-abcEFGhHilLnqrsvVwxy][-A][-B][-C] [-d][-e][-f][--help][--color] [範本模式] [文件或目錄...]
補充說明:
grep指令用於查找內容包含指定的範本樣式的文件,如果發現某文件的內容符合所指定的範本樣式,預設grep指令會把含有範本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名爲“-”,則grep指令會從標準輸入設備讀取數據。
參數:
-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 在線幫助。
--color=auto 可以將找到的關鍵詞部分加上顏色的顯示。
三、grep 命令 示例
常用命令:
總結:grep 命令 查找匹配 較爲方便,但其參數衆多,因而需要注意多加練習,熟悉各命令參數及之間的搭配使用。