ag 搜索工具參數詳解
Ag 是類似ack, grep的工具,它來在文件中搜索相應關鍵字。
官方列出了幾點選擇它的理由:
- 它比ack還要快 (和grep不在一個數量級上)
- 它會忽略.gitignore和.hgignore中的匹配文件
- 如果有你想忽略的文件,你需要將它們加入到
.ignore
文件中 - 它的命令名稱更短:-)
安裝
ubuntu直接安裝:
sudo apt install silversearcher-ag
基本使用
ag的基本使用很直接:在命令后面跟要搜索的字符串即可,它會搜索當前目錄下所有文本文件,并返回結果。
ag Module
輸出:
可以看到,會有很清晰地高亮輸出顯示,而且,真的是,非常快。
.ignore
文件中指定的文件名會被跳過,不進行搜索。直接把想要忽略的文件名寫進去就行:
# .ignore
model.py
trainer.py
詳細格式及命令選項
下面介紹一些 ag 的常用參數選項及其含義:
選項 | 功能 |
---|---|
-s / -i / -S | 大小寫敏感 / 不敏感 / 智能大小寫判斷(默認),即有大寫就開啟大小寫敏感,否則不敏感 |
-c | count,輸出每個文件中有幾個匹配字串 |
-A / -B / -C [NUM] | after / before / context,展示匹配到字串的[后/前 / 前后都有] NUM 行,默認2行 |
-a | 搜索全部文件,包括 .ignore 忽略的文件,不包括隱藏文件 |
-D | Output ridiculous amounts of debugging info. Not useful unless you′re actually debugging. (這句是手冊原文,笑) |
-f | 追蹤軟鏈接,默認不追蹤 |
-g [PATTERN] | 輸出匹配 PATTERN 的文件名 |
-G [PATTERN] | 僅搜索文件名匹配 PATTERN 的文件內容 |
-l / -L | 僅輸出能 / 不能內容匹配成功的文件的文件名,不輸出行內容 |
-m [NUM] | 僅輸出前 NUM 次成功匹配的內容,跳過剩下的,默認為0,即全部輸出 |
-r / -n | 是 / 否進入目錄進行遞歸搜索,默認會進行遞歸搜索 |
-o | 只輸出行中匹配成功的部分 |
-p [PATH] | 提供指定的 .ignore 文件的路徑,默認為當前目錄下 |
-Q | 不將 PATTERN 按照正則表達式來解析 |
-u | 搜索所有文件,包括二進制文件,但還是會忽略 .ignore 等文件 |
-U | 忽略 VCS ignore文件(包括.gitignore, .hgignore),但仍然會考慮 .ignore,就是前面兩者中的內容會被搜索,但是 .ignore 中的內容還是會被忽略 |
-w | 只匹配整個單詞 |
-V | 輸出版本信息 |
-v | 匹配所有不包含指定字串的行 |
z | 搜索壓縮文件中的內容 |
另外一些選項:
選項 | 功能 |
---|---|
--ackmate | 以可由AckMate解析的格式輸出結果 |
--hidden | 搜索隱藏文件,但不會搜索忽略文件,即與 -a 相反 |
--depth [NUM] | 搜索目錄深度,-1 為無限制,默認為 25 |
--ignore PATTERN | 忽略名稱匹配到 PATTERN 的文件或目錄的內容,即與 -G 相反 |
--[no]break | 搜索結果的不同文件之間是否空行,默認空行 |
--[no]color | 是否有顏色高亮顯示,默認有 |
--column | 輸出列號 |
這就基本全了,還有一些不是很常用的參數,全部的選項參數可 man ag
來查看。