Linux 最重要的三個命令在業界被稱為三劍客,它們是:awk
、sed
、grep
。sed 已經在上篇中講過,本文要講的是 grep
命令。
我們在使用 Linux 系統中,grep 命令的使用尤為頻繁,熟練掌握 grep 的常見用法,能夠極大地提高你的工作效率。
grep 命令是一種強大的文字搜尋工具,它能使用正規表示式,按照指定的模式去匹配,並把匹配的行列印出來。需要注意的是,grep 只支援匹配而不能替換匹配的內容,替換的功能可以由 sed 來完成。
整體上 grep 還是比較簡單的,文中不會詳細列舉所有的選項和引數,會以多個具體示例來說明 grep 的使用方法和場景,幫助你快速學會 grep 的常見用法。
示例實戰
廢話不說了,直接實戰。文章中的示例 需要一個樣例檔案,檔案內容如下:
1. 把包含 syslog 的行過濾出來
2. 把以 ntp 開頭的行過慮出來
3. 把匹配 ntp 的行以及下邊的兩行過濾出來
4. 把包含 syslog 及上邊的一行過濾出來
5. 把包含 syslog 以及上、下一行內容過濾出來
6. 過濾某個關鍵詞,並輸出行號
7. 過濾不包含某關鍵詞,並輸出行號
8. 刪除掉空行
9. 過濾包含 root 或 syslog 的行
10. 檢視當前目錄中包含某關鍵詞的所有檔案(這個很有用)
簡單總結
通過了一些簡單案例操作,我們應該已經熟悉了 grep 的常見用法,下邊再來簡單總結 grep 的常見選項,相信在實戰練習後再來總結應該會有更好的學習效果。
-A
:除了匹配行,額外顯示該行之後的N行-B
:除了匹配行,額外顯示該行之前的N行-C
:除了匹配行,額外顯示該行前後的N行-c
:統計匹配的行數-e
:實現多個選項間的邏輯 or 關係-E
:支援擴充套件的正規表示式-F
:相當於 fgrep-i
:忽略大小寫-n
:顯示匹配的行號-o
:僅顯示匹配到的字串-q
:安靜模式,不輸出任何資訊,指令碼中常用-s
:不顯示錯誤資訊-v
:顯示不被匹配到的行-w
:顯示整個單詞--color
:以顏色突出顯示匹配到的字串
與 grep 相似的工具還有 egrep
、fgrep
,實用性並不強,其功能完全可以通過 grep 的擴充套件引數來實現,所以就不再擴充套件。
好了,本次分享就到這裡了!謝謝大家,我是肖邦,歡迎關注後續的精彩內容。
推薦閱讀: