Grep 工具学习记录
学习日期:2026-03-13
所属阶段:阶段一 - 基础掌握
工具概述
Grep 是 Claude Code 中用于搜索文件内容的专用工具,支持正则表达式,用于替代传统的 grep 命令。
参数说明
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
pattern |
string | ✅ | 搜索的文本或正则表达式 |
path |
string | ❌ | 搜索的目录或文件 |
glob |
string | ❌ | 文件类型过滤(如 *.md) |
output_mode |
string | ❌ | content(默认)或files_with_matches |
-n |
boolean | ❌ | 显示行号 |
-i |
boolean | ❌ | 忽略大小写 |
-C |
number | ❌ | 显示匹配行前后 N 行上下文 |
-A |
number | ❌ | 显示匹配行后 N 行 |
-B |
number | ❌ | 显示匹配行前 N 行 |
实践案例
案例 1:基础内容搜索
需求:在 ClaudeCode 目录中搜索包含"阶段"的文件
执行:
Grep pattern="阶段" path="ClaudeCode" -n
结果:
D:\dazhao\learning\documents\ClaudeCode\008-Claude Code深入学习计划.md:7:## 阶段一:基础掌握(第 1-2 周)
D:\dazhao\learning\documents\ClaudeCode\008-Claude Code深入学习计划.md:19:**阶段检查点**:
D:\dazhao\learning\documents\ClaudeCode\008-Claude Code深入学习计划.md:26:## 阶段二:进阶技能(第 3-4 周)
D:\dazhao\learning\documents\ClaudeCode\008-Claude Code深入学习计划.md:38:**阶段检查点**:
D:\dazhao\learning\documents\ClaudeCode\008-Claude Code深入学习计划.md:45:## 阶段三:效率提升(第 5-6 周)
D:\dazhao\learning\documents\ClaudeCode\008-Claude Code深入学习计划.md:57:**阶段检查点**:
D:\dazhao\learning\documents\ClaudeCode\008-Claude Code深入学习计划.md:64:## 阶段四:专家应用(第 7-8 周)
D:\dazhao\learning\documents\ClaudeCode\008-Claude Code深入学习计划.md:74:| 复杂规划 | 制定和执行复杂计划 | 完成一个多阶段的功能开发 |
D:\dazhao\learning\documents\ClaudeCode\008-Claude Code深入学习计划.md:96:| 日期 | 阶段 | 完成内容 | 心得/问题 |
D:\dazhao\learning\documents\ClaudeCode\008-Claude Code深入学习计划.md:98:| 2026-03-13 | 阶段一 | 创建学习计划 | 开始系统学习 |
心得:
- 使用 -n 显示行号,便于定位
- 结果显示文件路径、行号和匹配内容
案例 2:仅显示文件名
需求:查找包含"Agent"的文件,只显示文件名
执行:
Grep pattern="Agent" path="ClaudeCode" output_mode="files_with_matches"
预期结果:
- 003-Claude Code 尝试使用Agent Teams功能.md
- 其他包含 Agent 的文档
心得:
- output_mode="files_with_matches" 只返回文件名列表
- 适用于快速定位哪些文件包含目标内容
案例 3:显示上下文
需求:搜索"工具"并显示前后 3 行
执行:
Grep pattern="工具" path="ClaudeCode" -C 3
应用场景:
- 需要查看匹配内容的上下文语境
- 理解代码逻辑或文档段落
案例 4:忽略大小写
需求:搜索"claude"(不区分大小写)
执行:
Grep pattern="claude" path="ClaudeCode" -i
心得:
- -i 参数匹配 "Claude"、"CLAUDE"、"claude" 等
案例 5:文件类型过滤
需求:只在 Kotlin 文件中搜索特定内容
执行:
Grep pattern="class MainActivity" glob="*.kt"
心得:
- glob 参数限制搜索范围
- 避免在无关文件中搜索
最佳实践
| 场景 | ✅ 推荐 | ❌ 避免 |
|---|---|---|
| 搜索内容 | Grep pattern="xxx" |
grep -rn "xxx" |
| 只显示文件名 | output_mode="files_with_matches" |
grep -l |
| 过滤文件类型 | glob="*.kt" |
grep --include="*.kt" |
| 显示上下文 | -C 3 |
手动查找 |
与 Glob 的配合使用
# 步骤 1:找到文件
Glob pattern="kotlin/*.md"
# 步骤 2:在找到的文件中搜索
Grep pattern="also" path="kotlin"
常见问题
Q1: Grep 和 Glob 有什么区别?
A: Glob 找文件(按文件名),Grep 搜内容(按文件内容)。
Q2: 如何搜索正则表达式?
A: pattern 直接支持正则,如 pattern="fun \w+\("。
Q3: 搜索结果太多怎么办?
A: 使用更精确的 pattern 或添加 glob 限制文件类型。
学习检查点
- [x] 理解 Grep 各参数的作用
- [x] 能使用
-n显示行号定位内容 - [x] 能使用
glob过滤文件类型 - [x] 掌握优先使用 Grep 而不是 Bash grep
掌握度:⭐⭐⭐⭐⭐
当前文章价值9.49元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

评论已关闭!