Linux 最重要的三個(gè)命令在業(yè)界被稱為三劍客,它們是:awk、sed、grep。sed 已經(jīng)在上篇中講過(guò),本文要講的是 grep 命令。
我們?cè)谑褂?Linux 系統(tǒng)中,grep 命令的使用尤為頻繁,熟練掌握 grep 的常見(jiàn)用法,能夠極大地提高你的工作效率。
grep 命令是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式,按照指定的模式去匹配,并把匹配的行打印出來(lái)。需要注意的是,grep 只支持匹配而不能替換匹配的內(nèi)容,替換的功能可以由 sed 來(lái)完成。
整體上 grep 還是比較簡(jiǎn)單的,文中不會(huì)詳細(xì)列舉所有的選項(xiàng)和參數(shù),會(huì)以多個(gè)具體示例來(lái)說(shuō)明 grep 的使用方法和場(chǎng)景,幫助你快速學(xué)會(huì) grep 的常見(jiàn)用法。
示例實(shí)戰(zhàn)廢話不說(shuō)了,直接實(shí)戰(zhàn)。文章中的示例 需要一個(gè)樣例文件,文件內(nèi)容如下:
1. 把包含 syslog 的行過(guò)濾出來(lái)
2. 把以 ntp 開(kāi)頭的行過(guò)濾出來(lái)
3. 把匹配 ntp 的行以及下邊的兩行過(guò)濾出來(lái)
4. 把包含 syslog 及上邊的一行過(guò)濾出來(lái)
5. 把包含 syslog 以及上、下一行內(nèi)容過(guò)濾出來(lái)
6. 過(guò)濾某個(gè)關(guān)鍵詞,并輸出行號(hào)
7. 過(guò)濾不包含某關(guān)鍵詞,并輸出行號(hào)
8. 刪除掉空行
9. 過(guò)濾包含 root 或 syslog 的行
10. 查看當(dāng)前目錄中包含某關(guān)鍵詞的所有文件(這個(gè)很有用)
簡(jiǎn)單總結(jié)通過(guò)了一些簡(jiǎn)單案例操作,我們應(yīng)該已經(jīng)熟悉了 grep 的常見(jiàn)用法,下邊再來(lái)簡(jiǎn)單總結(jié) grep 的常見(jiàn)選項(xiàng),相信在實(shí)戰(zhàn)練習(xí)后再來(lái)總結(jié)應(yīng)該會(huì)有更好的學(xué)習(xí)效果。
-A:除了匹配行,額外顯示該行之后的N行
-B:除了匹配行,額外顯示該行之前的N行
-C:除了匹配行,額外顯示該行前后的N行
-c:統(tǒng)計(jì)匹配的行數(shù)
-e:實(shí)現(xiàn)多個(gè)選項(xiàng)間的邏輯 or 關(guān)系
-E:支持?jǐn)U展的正則表達(dá)式
-F:相當(dāng)于 fgrep
-i:忽略大小寫
-n:顯示匹配的行號(hào)
-o:僅顯示匹配到的字符串
-q:安靜模式,不輸出任何信息,腳本中常用
-s:不顯示錯(cuò)誤信息
-v:顯示不被匹配到的行
-w:顯示整個(gè)單詞
--color:以顏色突出顯示匹配到的字符串
與 grep 相似的工具還有 egrep、fgrep,實(shí)用性并不強(qiáng),其功能完全可以通過(guò) grep 的擴(kuò)展參數(shù)來(lái)實(shí)現(xiàn),所以就不再擴(kuò)展。
編輯:lyn
-
Linux
+關(guān)注
關(guān)注
87文章
11171瀏覽量
208475 -
grep
+關(guān)注
關(guān)注
0文章
22瀏覽量
4708
原文標(biāo)題:Linux 三劍客之 grep 實(shí)戰(zhàn)詳解教程
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論