# Linux grep基礎入門知識點有哪些
## 一、grep簡介
`grep`(Global Regular Expression Print)是Linux/Unix系統中功能強大的文本搜索工具,它通過正則表達式在文件中搜索指定模式,并將匹配的行打印出來。作為三劍客(grep、sed、awk)之首,grep在日志分析、配置文件查找等場景中應用廣泛。
### 核心功能特點
- 支持基本正則表達式(BRE)和擴展正則表達式(ERE)
- 支持多文件搜索和遞歸目錄搜索
- 支持匹配行號顯示、反向匹配等實用功能
- 處理速度快,適合大文件搜索
## 二、基本語法結構
```bash
grep [選項] 模式 [文件...]
選項 | 說明 |
---|---|
-i |
忽略大小寫 |
-v |
反向匹配(顯示不包含模式的行) |
-n |
顯示匹配行的行號 |
-c |
統計匹配行數(不顯示具體內容) |
-l |
只顯示包含匹配項的文件名 |
-L |
顯示不包含匹配項的文件名 |
-w |
全詞匹配 |
-r /-R |
遞歸搜索目錄 |
-A num |
顯示匹配行及后面num行 |
-B num |
顯示匹配行及前面num行 |
-C num |
顯示匹配行及前后各num行 |
--color |
高亮顯示匹配內容 |
grep "hello" file.txt # 搜索包含hello的行
.
匹配任意單個字符*
前導字符出現0次或多次^
匹配行首$
匹配行尾[]
字符集合(如[a-z]
匹配任意小寫字母)-E
)grep -E "go+d" file.txt # 匹配god, good, gooood等
+
前導字符1次或多次?
前導字符0次或1次|
或操作(如cat|dog
)()
分組匹配grep -n "ERROR" /var/log/syslog # 帶行號顯示錯誤日志
grep -c "404" access.log # 統計404錯誤次數
grep -r --include="*.py" "import pandas" /project # 遞歸搜索py文件
ps aux | grep "nginx" # 查找nginx進程
ifconfig | grep -E "inet [0-9.]+" # 提取IP地址
grep -E "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}$" emails.txt # 郵箱驗證
限制搜索范圍:
grep -m 100 "pattern" largefile.log # 只顯示前100個匹配
排除目錄:
grep -r --exclude-dir={node_modules,venv} "function" .
使用快速模式:
grep -F "固定字符串" file # 禁用正則提高速度
并行搜索(需安裝parallel):
find . -type f | parallel -j 4 grep "pattern" {}
grep -a "text" binary_file # -a將二進制文件當文本處理
grep --unicode-regexp "中文" utf8_file.txt
grep "\$20" prices.txt # 搜索$20需要轉義
grep -E
(擴展正則)grep -F
(快速字符串匹配)man grep
/info grep
提示:建議通過
alias grep='grep --color=auto'
將高亮設為默認,提升可讀性。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。