關於匹配的實例:
統計全部包含「48」字符的行有多少行
grep -c "48" demo.txt
不區分大小寫查找「May」全部的行)
grep -i "May" demo.txt
顯示匹配字符「48」的行及行號
grep -n "48" demo.txt
顯示輸出沒有字符「48」全部的行)
grep -v "48" demo.txt
顯示輸出以字符「48」開頭,並在字符「48」後是一個tab鍵所在的行
grep '48[[:blank:]]' demo.txt
顯示輸出以字符「48」開頭,第三個字符是「3」或是「4」的全部的行)
grep "48[34]" demo.txt
顯示輸出行首不是字符「48」的行)
grep "^[^48]" demo.txt
顯示輸出第一個字符以「M」或「m」開頭,以字符「ay」結束的行)
grep "[Mm]ay" demo.txt
顯示輸出第一個字符是「K」,第2、3、四是任意字符,第五個字符是「D」所在的行)
grep "K…D" demo.txt
顯示輸出第一個字符的範圍是「A-D」,第二個字符是「9」,第三個字符的是「D」的全部的行
grep "[A-D][9]D" demo.txt
顯示第一個字符是3或5,第二三個字符是任意,以1998結尾的全部行
grep "[35]..1998" demo.txt
顯示輸出字符「4」至少重複出現2次的全部行
grep "4\{2,\}" demo.txt
顯示輸出字符「9」至少重複出現3次的全部行
grep "9\{3,\}" demo.txt
顯示輸出字符「9」重複出現的次數在必定範圍內,重複出現2次或3次全部行
grep "9\{2,3\}" demo.txt
顯示輸出空行的行號
grep -n "^$" demo.txt
若是要查詢目錄列表中的目錄 同:ls -d *
ls -l |grep "^d"
在一個目錄中查詢不包含目錄的全部文件
ls -l |grep "^[d]"
查詢其餘用戶和用戶組成員有可執行權限的目錄集合
ls -l |grpe "^d…..x..x"
假定要抽取代碼爲484和483的城市位置,
#grep '48[34]' data.f
若是要抽出記錄,使其行首不是48,
#grep '^[^48]' data.f
抽取以L開頭,以D結尾長度爲5個字符的全部代碼,可以使用下述方法:
#grep 'L...D' data.f
查詢全部以5開始以1996或1998結尾的全部記錄
#grep '5..199[68]' data.f
第一個字符爲任意數字,第二個字符在0到5之間,第三個字符在0到6之間:
#grep '[0-9][0-5][0-6]' data.f
#grep '^[0-9][0-5][0-6]' data.f #以行首開始
抽取包含數字4至少重複出現兩次的全部行:
#grep '4\{2,\}' data.f
grep命令加-E參數,這一擴展容許使用擴展模式匹配。
例如,要抽取城市代碼爲219或216,方法以下:
#grep -E '219|216' data.f
結合使用^和$可查詢空行。使用- n參數顯示實際行數:
#grep -n '^$' data.f
匹配特殊字符查詢有特殊含義的字符,諸如$.'"*[]^|\+?,必須在特定字符前加\。
假設要查詢包含「.」的全部行,腳本以下:
#grep '\.' data.f
#grep '\"' data.f
如要查詢文件名conftroll.conf(這是一個配置文件),腳本以下:
#grep 'conftroll\.conf' myfile
最多六個小寫字符,後跟句點,接着是兩個大寫字符,
#grep '[a-z]\{1,6\}\.[A-Z]\{2\}' filename.deposit
grep中通配符*的使用
#grep 'l.*s' testfile #匹配如"looks"
#grep 'oo*' testfile #匹配如"looks"
在全部文件中查詢行尾包含單詞device的全部行
#grep 'device$' *
查詢目錄列表中的目錄,方法以下:
#ls -l | grep '^d'
在一個目錄中查詢不包含目錄的全部文件,方法以下:
#ls -l | grep '^[^d]'
要查詢其餘用戶和其餘用戶組成員有可執行權限的目錄集合,方法以下:
#ls -l | grep '^d.....x..x'