給自己提出以下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 被匹配...