主要選項
組合 `grep` 指令的各種選項,搜尋您想要的文字。
1. 基本搜尋
2. 搜尋選項
3. 輸出選項
4. 遞迴搜尋
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`grep` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
正規表達式基礎
`grep` 指令支援正規表達式 (Regular Expressions),用於強大的文字搜尋。使用正規表達式可以輕鬆找出複雜的模式。
| 字元 | 說明 | 範例 |
|---|---|---|
| . | 任何單一字元 (換行符除外) | `a.b` (acb, amb 等) |
| * | 前一個字元重複 0 次或多次 | `ab*c` (ac, abc, abbc 等) |
| + | 前一個字元重複 1 次或多次 | `ab+c` (abc, abbc 等) |
| ? | 前一個字元出現 0 次或 1 次 | `ab?c` (ac, abc) |
| ^ | 行的開頭 | `^start` (以 start 開頭的行) |
| $ | 行的結尾 | `end$` (以 end 結尾的行) |
| [abc] | 括號內的任何一個字元 | `[aeiou]` (母音) |
| [a-z] | 範圍內的任何一個字元 | `[0-9]` (數字) |
| [^abc] | 除括號內字元以外的任何字元 | `[^0-9]` (非數字字元) |
| \b | 單字邊界 | `\bword\b` (精確匹配 'word' 單字) |
| | | OR 運算 (兩個模式之一) | `cat|dog` ('cat' 或 'dog') |
基本正規表達式 (BRE) 與擴展正規表達式 (ERE)
`grep` 預設使用 BRE。若要將 `+`、`?`、`|`、`(`、`)` 等字元作為特殊含義使用,必須在其前面加上反斜線 (`\`)。使用 `-E` 選項可啟用 ERE 模式,此時這些字元無需反斜線即可使用。`-P` 選項則提供更強大的 PCRE 功能。
使用範例
透過 `grep` 指令的實用範例,練習文字搜尋。
在日誌檔中搜尋 'error'
grep 'error' /var/log/syslog
輸出 `syslog` 檔案中所有包含 'error' 字串的行。
不區分大小寫搜尋 'failed' 並輸出行號
grep -in 'failed' /var/log/auth.log
不區分大小寫搜尋 'failed',並顯示結果及其行號。
僅輸出不包含特定模式的行
grep -v '^#' /etc/nginx/nginx.conf
輸出 `nginx.conf` 檔案中除了以註釋符號 (#) 開頭的行之外的所有行。
包含子目錄在 '.conf' 檔案中搜尋 'server_name'
grep -r 'server_name' *.conf
在目前目錄及其所有子目錄中,遞迴搜尋副檔名為 '.conf' 的檔案中包含 'server_name' 模式的內容。
尋找特定進程 (結合 ps 與管道)
ps aux | grep apache2
從 `ps aux` 指令的結果中,過濾並查看與 'apache2' 相關的進程。
在多個檔案中搜尋 'warning' 或 'critical'
grep -E 'warning|critical' /var/log/syslog /var/log/kern.log
使用正規表達式的 OR (|) 運算子,在多個日誌檔中搜尋 'warning' 或 'critical' 訊息。