主要選項
嘗試組合 `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') |
| | 或運算符(兩個模式之一) | `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' 消息。