1. grep:
指定
樣版(PATTERN)的字串,並將該符合字串所在之資料列內容列印出
-a 或--text
grep原本是搜尋文字檔,若拿二進位的檔案作為搜尋的目標, 則會顯示如下的訊息: Binary file 二進位檔名 matches 然後結束。 若加上-a參數則可將二進位檔案視為文字檔案搜尋, 相當於--binary-files=text這個參數。-B NUM,--before-context=NUM
與 -A NUM 相對,但這此參數是顯示除符合行之外 並顯示在它之前的NUM行。
-C [NUM], -NUM, --context[=NUM]
列出符合行之外並列出上下各NUM行,預設值是2。
-b, --byte-offset
列出樣式之前的內文總共有多少byte
--binary-files=TYPE
此參數TYPE預設為binary(二進位),若以普通方式搜尋,只有2種結果: 1.若有符合的地方:顯示Binary file 二進位檔名 matches 2.若沒有符合的地方:什麼都沒有顯示。
若TYPE為without-match,遇到此參數, grep會認為此二進位檔案沒有包含任何搜尋樣式,與-I 參數相同。
若TPYE為text, grep會將此二進位檔視為text檔案,與-a 參數相同。
警告: --binary-files=text 若輸出為終端機,可能會產生一些不必要的輸出。
-c, --count
不顯示符合樣式行,只顯示符合的總行數。 若再加上-v,--invert-match,參數顯示不符合的總行數。-d ACTION, --directories=ACTION
若輸入的檔案是一個資料夾,使用ACTION去處理這個資料夾。 預設ACTION是read(讀取),也就是說此資料夾會被視為一般的檔案; 若ACTION是skip(略過),資料夾會被grep略過: 若ACTION是recurse(遞迴),grep會去讀取資料夾下所有的檔案, 此相當於-r 參數。
-E, --extended-regexp
採用規則表示式去解釋樣式。-e PATTERN, --regexp=PATTERN
把樣式做為一個partern,通常用在避免partern用-開始。-f FILE, --file=FILE
事先將要搜尋的樣式寫入到一個檔案,一行一個樣式。 然後採用檔案搜尋。
空的檔案表示沒有要搜尋的樣式,因此也就不會有任何符合。-G, --basic-regexp
將樣式視為基本的規則表示式解釋。(此為預設)-H, --with-filename
在每個符合樣式行前加上符合的檔案名稱,若有路徑會顯示路徑。-h, --no-filename
與-H參數相類似,但在輸出時不顯示路徑。--help
產生簡短的help訊息。-I
grep會強制認為此二進位檔案沒有包含任何搜尋樣式, 與--binary-files=without-match參數相同。
-i, --ignore-case
忽略大小寫,包含要搜尋的樣式及被搜尋的檔案。
-L, --files-without-match
不顯示平常一般的輸出結果,反而顯示出沒有符合的檔案名稱。
-l, --files-with-matches
不顯示平常一般的輸出結果,只顯示符合的檔案名稱。
--mmap
如果可能,使用mmap系統呼叫去讀取輸入,而不是預設的read系統呼叫。 在某些狀況,--mmap 能產生較好的效能。 然而,--mmap 如果運作中檔案縮短,或I/O 錯誤發生時, 可能造成未定義的行為(包含core dump),。
-n, --line-number
在顯示行前,標上行號。
-q, --quiet, --silent
不顯示任何的一般輸出。請參閱-s或--no-messages
-r, --recursive
遞迴地,讀取每個資料夾下的所有檔案,此相當於 -d recsuse 參數。
-s, --no-messages
不顯示關於不存在或無法讀取的錯誤訊息。
-V, --version
顯示出grep的版本號到標準錯誤。
當您在回報有關grep的bugs時,grep版本號是必須要包含在內的。-v, --invert-match
搜尋樣式行之外的全部。
-w, --word-regexp
將搜尋樣式視為一個字去搜尋,完全符合該"字"的行才會被列出。
-x, --line-regexp
將搜尋樣式視為一行去搜尋,完全符合該"行"的行才會被列出。
範例二:
[root@intel4 /root]# ls -l | grep -n RH | ||||
3:-rwx------ 1 root | root | 10152 | 9月 | 5 18:19 BSDRHL* | |
11:-rwx------ 1 root | root | 45323 | 9月 | 1 23:30 RHL974262492* | |
12:-rwxr-xr-x 1 root | root | 20596 | 9月 | 1 23:32 | |
RHL974262492.bk* | |||||
加-n參數可以在顯示行前,標上行號 |
最常見的就是配合著ls來使用,或者rpm -qa來看自己裝了哪些package 如:
[root@intel4 /root]# ls | l |grep | client | |
-rwxrwxrwx 1 root client20010726.tgz* |
root | 12517588 | 7月 26 01:11 |
-rwxrwxrwx 1 root | root | 9623331 | 5月 29 00:08 newclient.tgz* |
[root@intel4 /root]# rpm -qa |grep XFree86 XFree86-ISO8859-2-75dpi-fonts-4.0.2-7CLE XFree86-Xvfb-4.0.2-7CLE
XFree86-doc-4.0.2-7CLE
XFree86-Mach64-3.3.6-33CLE
XFree86-libs-4.0.2-7CLE
XFree86-4.0.2-7CLE
XFree86-100dpi-fonts-4.0.2-7CLE
XFree86-twm-4.0.2-7CLE
XFree86-tools-4.0.2-7CLE
XFree86-xf86cfg-4.0.2-7CLE
XFree86-xfs-4.0.2-7CLE
XFree86-cyrillic-fonts-4.0.2-7CLE
XFree86-xdm-4.0.2-7CLE
XFree86-FBDev-3.3.6-33CLE
XFree86-devel-4.0.2-7CLE
XFree86-75dpi-fonts-4.0.2-7CLE
XFree86-V4L-4.0.2-7CLE
XFree86-ISO8859-2-100dpi-fonts-4.0.2-7CLE XFree86-Xnest-4.0.2-7CLE