大家好,我是雲炬學長。基于目前很多企業都在使用 Linux 作業系統,掌握 Linux 指令行已經成為運維人必備的基礎知識和技能,學習指令是為了更好地解決問題。
上一篇分享了運維中遇到的問題及解決辦法,這次分享 Linux 的常用基礎指令 grep 。
grep 查找檔案中符合條件的字元串,與 sed、awk 組成 Linux 的三劍客,文法格式:grep [選項] 關鍵字 檔案名
關鍵字加引号(單引号,雙引号),不加引号的差別
關鍵字加引号,關鍵字會被看成一個整體,可以包含空格或特殊字元
1)單引号
如果關鍵字包含特殊字元($ 和 \' 除外),使用單引号會對特殊字元轉義,進行完全比對搜尋
2)雙引号
關鍵字即使包含特殊符号,使用雙引号原樣輸出
3)不加引号
搜尋包含關鍵字中任意單詞的文本行
一、列印包含關鍵字的行
文法格式:grep "關鍵字" 檔案名
查找包含關鍵字 root 的行,并顯示出來
二、列印以某關鍵字開頭的行
文法格式:grep "^關鍵字" 檔案名
在關鍵字前面加 ^ 号,表示搜尋以關鍵字開頭的行
三、列印某關鍵字結尾的行
文法格式:grep "關鍵字#34; 檔案名
在關鍵字後面加上 $ 符号,表示查找以關鍵字結尾的行
四、不區分大小寫列印關鍵字的行
文法格式:grep -i "關鍵字" 檔案名
列印包含 root 的行,可以是 Root ,ROOT 等等
五、列印關鍵字并顯示行号
文法格式:grep -n "關鍵字" 檔案名
在檔案 test.txt 中查找關鍵字的同時,并且顯示行号
六、遞歸搜尋關鍵字
文法格式:grep -r 關鍵字
搜尋所有的檔案及子目錄,包含關鍵字的行
grep -r "root" /home/back
七、統計比對某關鍵字的次數
文法格式:grep -c "關鍵字" 檔案名
統計包含 root 的行數
八、過濾空白行
固定的文法格式: grep -v "^#34; 檔案名
先輸出所有内容,然後鍵入指令對比後,更好展示
九、查找包含多個關鍵字的行
文法格式:grep -E "關鍵字1|關鍵字2" 檔案名
查找包含 root 或者 sync 的行
grep -E "root|sync" test.txt
這裡使用了 Linux 正規表達式,Linux 正規表達式常用元字元如下