# grep命令的使用實例有哪些
`grep`(Global Regular Expression Print)是Linux/Unix系統中強大的文本搜索工具,通過正則表達式匹配模式進行搜索。以下是常見使用場景和實例:
## 一、基礎搜索用法
### 1. 文件內容搜索
```bash
# 在文件中搜索包含"error"的行
grep "error" /var/log/syslog
# 顯示匹配行及行號
grep -n "error" file.txt
# 統計匹配次數
grep -c "error" file.log
# 當前目錄所有.txt文件中搜索
grep "pattern" *.txt
# 遞歸搜索目錄
grep -r "config" /etc/
# 匹配以"start"開頭的行
grep "^start" file.txt
# 匹配包含數字的行
grep "[0-9]" data.log
# 匹配"error"或"warning"
grep -E "error|warning" system.log
# 顯示不包含"success"的行
grep -v "success" output.log
# 顯示匹配行及其后2行
grep -A 2 "critical" app.log
# 顯示匹配行及其前后1行
grep -C 1 "exception" debug.log
# 查找nginx進程(排除grep自身)
ps aux | grep nginx | grep -v grep
# 提取2023年的錯誤日志
grep "^2023-.*error" /var/log/app.log
# 統計每小時錯誤次數
grep "ERROR" app.log | cut -d' ' -f2 | uniq -c
# 查找所有TODO注釋
grep -rnw '/path/to/code' -e "TODO"
# 檢查未關閉的文件描述符
grep -r "open(" src/ | grep -v "close("
# 使用fgrep加速固定字符串搜索
fgrep -m 1000 "fixed_string" large_file.log
# 在二進制文件中搜索字符串
grep -a "text" binary.file
# 指定GBK編碼搜索
grep --include="*.txt" -n -P "[\x80-\xFF]" *
# 搜索時排除.git目錄
grep -r --exclude-dir=".git" "pattern" .
# 查找并排序結果
grep "item" data.txt | sort -u
# 統計不同IP訪問次數
grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" access.log | sort | uniq -c
# 查找并替換(配合sed)
grep -l "old_text" *.txt | xargs sed -i 's/old_text/new_text/g'
| 場景 | 命令示例 | 說明 |
|---|---|---|
| 基礎搜索 | grep "text" file |
簡單文本匹配 |
| 遞歸搜索 | grep -r "text" /dir |
搜索子目錄 |
| 正則匹配 | grep -E "pattern1|pattern2" |
擴展正則表達式 |
| 反向匹配 | grep -v "exclude" |
排除指定內容 |
| 二進制搜索 | grep -a "text" binary.file |
在二進制文件中搜索文本 |
掌握這些grep技巧可顯著提升文本處理效率,建議通過man grep查看完整文檔。
“`
注:實際使用時需注意:
1. 正則表達式語法根據-E/-P參數變化
2. 大文件搜索建議結合less或head查看
3. 重要操作前建議先不加-i參數測試
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。