grep
(Global Regular Expression Print)是 Linux/Unix 系统中用于文本搜索的强大工具,它能根据指定模式匹配文本并输出匹配行。
一、常用参数
二、示例
1. 递归搜索目录中的关键词
grep -r "import" /项目目录/
2. 统计包含特定单词的行数
grep -c "ERROR" 日志.log
3. 显示匹配行及前后 3 行
grep -C 3 "异常" 系统日志.log
4. 排除特定目录的搜索
grep -r --exclude-dir={node_modules,venv} "TODO" /项目/
5. 结合 find
搜索特定类型文件
find . -name "*.py" -exec grep "def main" {} +
6. 限制搜索范围:
# 只搜索前 1000 行
head -n 1000 文件.txt | grep "关键词"
7. 中文搜索乱码
原因:文件编码与终端编码不一致。
解决:指定编码:
grep -a --binary-files=text --locale=C "中文" 文件.txt
8. 查找 IP 地址(使用扩展正则)
grep -E -o "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" 网络日志.log