(一)linux三劍客之grep

2022-06-19 17:51:08 字數 2306 閱讀 4601

給自己提出以下6個問題,看自己是否真正掌握了grep

[1] grep 是什麼? 

[2] grep 有什麼作用 ?

[4] grep 常用於何處 ?

[5] grep 的基本用法 ?

[6] grep 例項用法 ?

[6] grep 技術常用【收藏】

它的家族有三大類:grep 、egrep  、fgrep 

通常我們可以這樣認為:  egrap相當於grap -e , fgrap 相當於 grap -f

egrep其實是grap的優化版,改良了許多傳統 grep 不能或不便的操作:

例如:grep 之下不支援 ? 與 + 這兩種 modifier, 但 egrep 則可。

grep 不支援 a|b 或 (abc|xyz) 這類"或一"比對, 但 egrep 則可。

grep 在處理 時, 需用 \ 處理, 但 egrep 則不需。

fgrap 不作re處理,表示式僅作一般字串處理,所有meta失去功能

比如:one.c內容

void

class

()

grep 

"class

"one.c

- void

class() //

結果

若是用grap進行目錄搜尋會報錯

grap

"class

" ./grep: ./: is a directory

常用於檔案搜尋

grep "搜尋內容"  搜尋文字

這裡很值得深入思考的是,grep後面跟著雙引號,單引號,不帶引號,有什麼區別?

以及,grep的正規表示式後面跟著雙引號,單引號又有什麼區別? 可以不帶引號嗎?

為此我也研究了很久,得出結論

grep 「linux"  oytt.c  //雙引號

grep 'linux'  oytt.c  //單引號

單引號是將引號的內容原封不動的搜尋出來

grep linux    oytt.c  //不帶引號

這樣寫和上面兩種區別不大,但是若是想搜尋有空格的子的字串就無能為力了,比如想在oytt.c檔案中搜尋含有oytt younger的文字

grep oytt younger oytt.c就會報錯no such file or directory

因此若是搜尋連續的字串,數字,變數,和單引號的效果是一樣的,若是想搜尋非連續的,則需要用單引號或者雙引號。

-e : 使用正則搜尋

-i : 不區分大小寫

-v : 查詢不包含指定內容的行

-w: 按單詞搜尋

-c: 統計匹配到的次數

-n: 顯示行號

-r: 逐層遍歷目錄查詢

-a: 顯示匹配行及後面多少行, 如: -a3, 則表示顯示匹配行及後3行

-b: 顯示匹配行及前面多少行, 如: -b3, 則表示顯示匹配行及前3行

-c: 顯示匹配行前後多少行, 如: -c3, 則表示顯示批量行前後3行

--color: 匹配到的內容高亮顯示

--include: 指定匹配的檔案型別

--exclude: 過濾不需要匹配的檔案型別

grep -a

顯示行號之後的行號grep -a 'one' oytt.txt

grep -a / grep -b/ grep -c 都是一套類似的用法

grep -a

二進位制檔案不被忽略grep -a 'one' oytt.txt

binary file one.c matches 若是有這種報錯情況,就需要grep -a

grep -v

反向查詢,也就是輸出不包含指定的內容grep -v 'one' oytt.txt

輸出除了one以外的其它資料

可以配合其它語句使用 cat oytt.txt | grep -v 'one' 非常實用

grep -l

列出包含該內容的文集grep -l oytt1.txt oytt2.txt

不能根據路徑,必須一一把檔案列出來

grep -n

匹配行號grep -n 'one' oytt.txt

grep -e

grep -e 'one' -e 'two' oytt.txt

同時查詢多個目標

grep -c 計算匹配到的行數量

grep -c 'one' oytt.txt  //結果:1

grep -w 

grep -w "one" oytt.txt

整個字串匹配,只能搜到到one的單詞,而不能搜尋到類似onefunc的單詞

linux三劍客之grep 一

1.grep普通搜尋匹配 grep root password 遞迴搜尋 grep r root 會在當前目錄下的檔案中和子目錄的檔案中進行搜尋,搜尋結果中最前面顯示的是檔名 排除搜尋 grep r exclude dir test root exclude dir test 會排除當前目錄下的te...

linux 三劍客之 grep

grep 是 linux系統中最重要的命令之一 其功能是從文字或者管道資料中篩選匹配的行及資料 如果配置正規表示式技術一起使用,則其功能更強大,它是linux運維人員必須要掌握的命令之一 usage grep option pattern file 用法 grep 引數 要搜尋的內容 檔案 eg r...

Linux三劍客之grep

1.用途 linux grep命令是用於查詢檔案裡符合條件的字串 2.語法 grep 選項 搜尋的字串 檔案 3.常見的選項 e 開啟擴充套件 extend 的正規表示式。i 忽略大小寫 ignore case v 反過來 invert 只列印沒有匹配的,而匹配的反而不列印。n 顯示行號 w 被匹配...