◎grep -- print lines matching a pattern (將符合樣式的該行列出) ◎語法: grep [options] pattern [file...] grep用以在file內文中比對相對應的部分,或是當沒有指定檔案時, 由標準輸入中去比對。 在預設的情況下,grep會將符合樣式的那一行列出。 此外,還有兩個程式是grep的變化型,egrep及fgrep。 其中egrep就等同於grep -e ,fgrep等同於grep -f 。 ◎參數 1. -a num,--after-context=num 除了列出符合行之外,並且列出後num行。 ex: $ grep -a 1 panda file (從file中搜尋有panda樣式的行,並顯示該行的後1行) 2. -a或--text grep原本是搜尋文字檔,若拿二進位的檔案作為搜尋的目標, 則會顯示如下的訊息: binary file 二進位檔名 matches 然後結束。 若加上-a參數則可將二進位檔案視為文字檔案搜尋, 相當於--binary-files=text這個參數。 ex: (從二進位檔案mv中去搜尋panda樣式) (錯誤!!!) $ grep panda mv binary file mv matches (這表示此檔案有match之處,詳見--binary-files=type ) $ (正確!!!) $ grep -a panda mv 3. -b num,--before-context=num 與 -a num 相對,但這此參數是顯示除符合行之外 並顯示在它之前的num行。 ex: (從file中搜尋有panda樣式的行,並顯示該行的前1行) $ grep -b 1 panda file 4. -c [num], -num, --context[=num] 列出符合行之外並列出上下各num行,預設值是2。 ex: (列出file中除包含panda樣式的行外並列出其上下2行) (若要改變預設值,直接改變num即可) $ grep -c[num] panda file 5. -b, --byte-offset 列出樣式之前的內文總共有多少byte .. ex: $ grep -b panda file 顯示結果類似於: 0:panda 66:pandahuang 123:panda03 6. --binary-files=type 此參數type預設為binary(二進位),若以普通方式搜尋,只有2種結果: 1.若有符合的地方:顯示binary file 二進位檔名 matches 2.若沒有符合的地方:什麼都沒有顯示。 若type為without-match,遇到此參數, grep會認為此二進位檔案沒有包含任何搜尋樣式,與-i 參數相同。 若tpye為text, grep會將此二進位檔視為text檔案,與-a 參數相同。 warning: --binary-files=text 若輸出為終端機,可能會產生一些不必要的輸出。 7. -c, --count 不顯示符合樣式行,只顯示符合的總行數。 若再加上-v,--invert-match,參數顯示不符合的總行數。 8. -d action, --directories=action 若輸入的檔案是一個資料夾,使用action去處理這個資料夾。 預設action是read(讀取),也就是說此資料夾會被視為一般的檔案; 若action是skip(略過),資料夾會被grep略過: 若action是recurse(遞迴),grep會去讀取資料夾下所有的檔案, 此相當於-r 參數。 9. -e, --extended-regexp 採用規則表示式去解釋樣式。 10. -e pattern, --regexp=pattern 把樣式做為一個partern,通常用在避免partern用-開始。 11. -f file, --file=file 事先將要搜尋的樣式寫入到一個檔案,一行一個樣式。 然後採用檔案搜尋。 空的檔案表示沒有要搜尋的樣式,因此也就不會有任何符合。 ex: (newfile為搜尋樣式檔) $grep -f newfile file 12. -g, --basic-regexp 將樣式視為基本的規則表示式解釋。(此為預設) 13. -h, --with-filename 在每個符合樣式行前加上符合的檔案名稱,若有路徑會顯示路徑。 ex: (在file與testfile中搜尋panda樣式) $grep -h panda file ./testfile file:panda ./testfile:panda $ 14. -h, --no-filename 與-h參數相類似,但在輸出時不顯示路徑。 15. --help 產生簡短的help訊息。 16. -i grep會強制認為此二進位檔案沒有包含任何搜尋樣式, 與--binary-files=without-match參數相同。 ex: $ grep -i panda mv 17. -i, --ignore-case 忽略大小寫,包含要搜尋的樣式及被搜尋的檔案。 ex: $ grep -i panda mv 18. -l, --files-without-match 不顯示平常一般的輸出結果,反而顯示出沒有符合的檔案名稱。 19. -l, --files-with-matches 不顯示平常一般的輸出結果,只顯示符合的檔案名稱。 20. --mmap 如果可能,使用mmap系統呼叫去讀取輸入,而不是預設的read系統呼叫。 在某些狀況,--mmap 能產生較好的效能。 然而,--mmap 如果運作中檔案縮短,或i/o 錯誤發生時, 可能造成未定義的行為(包含core dump),。 21. -n, --line-number 在顯示行前,標上行號。 ex: $ grep -n panda file 顯示結果相似於下: 行號:符合行的內容 22. -q, --quiet, --silent 不顯示任何的一般輸出。請參閱-s或--no-messages 23. -r, --recursive 遞迴地,讀取每個資料夾下的所有檔案,此相當於 -d recsuse 參數。 24. -s, --no-messages 不顯示關於不存在或無法讀取的錯誤訊息。 小註: 不像gnu grep,傳統的grep不符合posix.2協定, 因為缺乏-q參數,且他的-s 參數表現像gnu grep的 -q 參數。 shell script傾向將傳統的grep移植,避開-q及-s參數, 且將輸出限制到/dev/null。 posix: 定義unix及unix-like系統需要提供的功能。 25. -v, --version 顯示出grep的版本號到標準錯誤。 當您在回報有關grep的bugs時,grep版本號是必須要包含在內的。 26. -v, --invert-match 顯示除搜尋樣式行之外的全部。 27. -w, --word-regexp 將搜尋樣式視為一個字去搜尋,完全符合該"字"的行才會被列出。 28. -x, --line-regexp 將搜尋樣式視為一行去搜尋,完全符合該"行"的行才會被列出。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器