主要選項
組合 `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' 訊息。