ack 是专为程序员设计的代码搜索工具,自动忽略版本控制目录,支持按语言过滤文件。
安装
1
2
3
4
5
| # Ubuntu/Debian
sudo apt install ack-grep
# macOS
brew install ack
|
基本语法
匹配控制
| 选项 | 作用 |
|---|
-i | 忽略大小写 |
-w | 匹配完整单词 |
-v | 反向匹配 |
-Q | 纯文本匹配(不解析正则) |
输出控制
| 选项 | 作用 |
|---|
-l | 只显示文件名 |
-n | 显示行号 |
-c | 显示匹配次数 |
文件类型过滤
1
2
3
4
| ack -t python "def" # 只搜索 Python 文件
ack --java "public class" # 只搜索 Java 文件
ack -T js "function" # 排除 JavaScript 文件
ack --help-types # 查看支持的类型
|
目录过滤
1
2
| ack --ignore-dir=vendor "config"
ack -g "utils" # 只搜索文件名
|
示例
1
2
3
| ack -t python -n "数据库连接" # Python 文件中搜索并显示行号
ack -l "TODO" # 列出包含 TODO 的文件
ack --js -c "console.log" # 统计每个文件中 console.log 出现次数
|
正则支持
支持 Perl 兼容正则(PCRE):
1
2
| ack "func \w+" # 匹配函数定义
ack "error|warn" # 匹配 error 或 warn
|
Comments