Linux下文字搜尋 GREP篇

2022-07-28 06:51:14 字數 1478 閱讀 1915

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 忽略大小寫 只適用於單...