006 Linux 命令三劍客之-grep

不甩鍋的碼農發表於2022-01-25

file

01 一起來認識 grep!

Linux 命令三劍客,sed、grep、awk。

  • sed:擅長資料修改。
  • grep:擅長資料查詢定位。
  • awk:擅長資料切片,資料格式化,功能最複雜。
    grep 可以說是這三個命令中的紅人,是我們日常使用頻率最高的命令,下面和鍋鍋一起來搞定它。

02 grep 命令常用可選引數

  • -n # 顯示行號。
  • -i # 不區分大小寫。
  • -c # 統計匹配行,命中查詢字串的總行數。
  • -v # 顯示不包含匹配文字的所有行。
  • -r # 遞迴處理。
  • -E # 使用正規表示式作為匹配進行查詢(注:-e 沒有-E 支援的完整)。
  • --include # 指定匹配的檔案型別。
  • --exclude # 過濾不需要匹配的檔案型別。
    使用示例:
  1. grep -i "error" info.log
  2. grep -in  "error" info.log #不區分大小寫,並顯示行號。

03 grep 同時查詢多個檔案

  1. grep -in "key"  info.log  warn.log # 從檔案info.log 和 warn.log 查詢字串"key",不區分大小寫,並顯示行號。
  2. grep -n "key"  * # 查詢當前目錄下所有檔案中包含字串"key",並顯示對應的行號。

04 grep 遞迴查詢

前面已經總結過,-r/R引數,即 recursion,遞迴的意思。

  • grep -rn "key" * # 遞迴查詢當前目錄及其子目錄所有檔案中包含字串"key",並顯示對應的行號。

05 grep 查詢對應字元前後 n 行

  • grep -a10 "bug" info.log #檢視"bug"字元後的10行,a->after。
  • grep -b10 "bug"  info.log # 檢視"bug"字元前的10行,b->before。
  • grep -c10 "bug"  info.log # 檢視"bug"字元前後各10行。

06 grep 常用組合命令示例

  • history|grep rm # 查詢歷史命令中執行了哪些刪除命令。
  • cat *.log | grep 'exception' # 查詢當前目錄下所有log日誌中的exception字元行。
  • ps -ef|grep java # 此命令為一般運維中最常用命令,查詢linux程式中是否執行了此程式。
  • rpm -qa |grep yum # 查詢linux下是否有安裝過此rpm包。
  • grep -En '^2020' info.log # 使用正規表示式查詢,查詢以 2020 開頭的行,並顯示其行號。
  • grep -rn "warn"  *  --include  "*.log" # 遞迴查詢當前目錄及其子目錄所有log型別檔案中包含字串"warn",並顯示對應的行號。
  • netstat -nap|grep -E "6651"|grep -E "203.130.41.24" # 多個條件過濾查詢。
  • tail -1000f info.log | grep -E "aaa|bbb" # aaa 或 bbb 的條件都可以搜尋到,這個命令實踐中,滾動實時檢視日誌很常用。
  • tail -10000f info.log |grep 'check' >> call.log # 查詢,並把符合規則的輸出到對應檔案中
  • grep -E 'keyword1.*keyword2' info.log # 多個關鍵字同時出現查詢過濾
  • grep -E '^Error' info.log |grep 'failed'|awk -F ' ' '{print $10}' # 查詢以 Error 開頭,過濾包含 failed 的行,並以空格分隔,輸出第10個的內容

07 grep 相關的擴充命令

  • pgrep:查詢正在執行的程式,pgrep 是 grep 的擴充套件功能,同樣的還有 egrep、fgrep。
  • egrep:擴充套件正規表示式,相當於grep –E。
  • fgrep:不識別解析正規表示式,一般很少用。

08 小結

  • grep 命令,擅長查詢字串,正向查詢,反向查詢,正則查詢,多檔案查詢,遞迴查詢等。
  • grep 查詢對應字元前後 n 行,對大日誌檢索關鍵字時比較有用。此外 grep 還可以配合其他命令一起大展身手!配合正規表示式,可以更加靈活的實現查詢功能,正規表示式相關的內容前面的文章有一些總結。

「不甩鍋的碼農」原創,轉載請註明來源,未經授權禁止商業用途!同名 GZH 請關注!

相關文章