grep應該是所有linux下開發人員天天都會使用的乙個搜尋工具,以其簡單易用、功能強大贏大廣大人們的喜愛,熟練使用grep可以大大提高工具效率,下面總結一下本人在工作在使用上的一些技巧。
一、基本用法
grep [options] pattern [file...]
常見的options有幾下幾種:
-a 以文字檔案方式搜尋
-c 顯示滿足pattern 的個數
-i 忽略大小寫
-n 顯示匹配的行號
-v 反向選擇,即查詢不滿足pattern 的行
-b 顯示搜尋字元在匹配行出現的首位置
-r/r 遞迴搜尋指定目錄下所有檔案
-h 列印所有匹配pattern 的檔名,目錄搜尋時非常有用
-w 搜尋整個詞,而不是詞中的部分字串
下面舉幾個簡單例子:
1. 通過-v刪除滿足pattern的文字行
grep -v 『年代』 test.txt > test.txt 刪除test.txt檔案中包含』年代』的文字行
grep -en 『發生|現象』 a.txt 匹配同時包含「發生」和「理象」的文字行,並顯示行號
3. 多個options同時使用
grep -i -w -r -e 『error|failed|failure』 /var/log |less #檢視日誌的錯誤資訊
4. 代替wc顯示檔案行數
grep -c 」 test.txt
5. 搜尋以「我「開頭的文字行
grep 『^我』 test.txt
6. 搜尋以「我「結束的文字行
grep 『我$』 test.txt
7. 搜尋非空行
grep -vn 『^$』 test.txt
二、高階用法(正規表示式)
? 最多匹配一次
* 匹配零次或者任意多次
+ 匹配一次以上
匹配n次
最少匹配n次
最多匹配m次
匹配n到m次
舉幾個例子:
$ grep 『[a-z]\』 test.txt
顯示所有包含每個字串至少有10個連續小寫字元的字串的行。
$ grep \』[^a-fh-z]rep\』 test.txt
匹配不包含a-r和t-z的乙個字母開頭,緊跟rep的行。
grep -r 『hadoop』 `ls | grep -ve 『bin|boot|dev|initrd|lib』`
全盤搜尋(排除bin、boot、dev、initrd、lib)包含hadoop字串的檔案
grep 搜尋文字
grep 引數 搜尋內容 檔名grep greptest test.txt常用選項 作用選項 含義 求反 v 顯示不包含 搜尋內容 的所有行 顯示行號 n 顯示匹配行及其行號 忽略大小寫 i 忽略大小寫 統計數目 c 統計匹配的字串數量 常用正規表示式 作用引數 含義 指定行首 a 搜尋以 a 開頭...
grep搜尋文字
正則匹配 grep e a z 只輸出匹配到的文字 echo this is a line.grep o e a z 統計匹配到的行數 grep c 匹配之外的行 grep v 多級目錄中遞迴搜尋 grep text r n 忽略大小寫 grep i 匹配多個樣式 grep e this e lin...
grep 文字搜尋利器
linux系統中grep命令是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印出來。grep全稱是global regular expression print,表示全域性正規表示式版本,它的使用許可權是所有使用者。grep選項 c 只輸出匹配行的計數。i 忽略大小寫 只適用於單...