grep 搜索
grep 是 Linux 最强大的文本搜索工具,支持正则表达式,能快速在海量文本中定位目标内容。
grep 搜索
基本用法
grep "error" log.txt # 在文件中搜索 error
grep "error" *.log # 在多个文件中搜索
grep -i "error" log.txt # 忽略大小写
常用选项
grep -n "error" log.txt # 显示行号
grep -r "TODO" ./src # 递归搜索目录(最常用)
grep -l "error" *.log # 只显示包含匹配的文件名
grep -c "error" log.txt # 统计匹配次数
grep -v "debug" log.txt # 反向匹配(排除 debug 行)
grep -w "fail" log.txt # 精确匹配单词(非子串)
grep -A 3 "error" log.txt # 显示匹配行后 3 行
grep -B 2 "error" log.txt # 显示匹配行前 2 行
正则表达式
grep "^Error" log.txt # 以 Error 开头的行
grep "error$" log.txt # 以 error 结尾的行
grep "err.*or" log.txt # err 和 or 之间有任意字符
grep "[0-9]\{3\}" log.txt # 包含 3 位数字
grep -E "(error|warning)" log.txt # OR 匹配
实用场景
# 在项目里找某个函数定义
grep -rn "def process_data" ./src
# 统计代码行数(排除空行和注释)
grep -v "^$" app.py | grep -v "^#" | wc -l
# 查找某个端口被谁占用
grep -r "8080" /etc/nginx/
grep -rn是项目代码搜索的黄金组合。