ag
ack 的升級版,C語言編寫,更快更人性化
補充說明
摘自 https://github.com/ggreer/the_silver_searcher 項目的 Readme.md
- 它比ack快一個數量級。
- 它忽略了你的
.gitignore
和.hgignore
中的文件模式。 - 如果你的源碼庫裏有你不想搜索的文件,只要把它們的模式添加到一個.ignore文件裏。(cough .min.jscough*)
- 這個命令的名字比ack短33%,而且所有的鍵都在主行上!
語法
1ag [options] pattern [path ...]
2ag [可選項] 匹配模式 [路徑...]
選項
1輸出選項:
2 --ackmate 以 AckMate-parseable 的格式顯示結果
3 -A --after [LINES] 顯示匹配行之後的行(默認2行)
4 -B --before [LINES] 顯示匹配行之前的行(默認2行)
5 --[no]break 不同文件中匹配到的內容新建一行顯示(默認開啓)
6 -c --count 只顯示每個文件中匹配到的數量 (通常與匹配行數不同)
7 --[no]color 在結果中打印顏色代碼(默認啓用)
8 --color-line-number 行號的顏色代碼(默認值爲:1;33)。
9 --color-match 匹配結果的顏色代碼(默認值爲:30;43)。
10 --color-path 路徑名稱的顏色代碼(默認值爲:1;32)
11 --column 打印結果中的列號
12 --[no]filename 打印文件名(除非搜索單個文件,否則啓用)。
13 -H --[no]heading 在每個文件匹配前輸出文件名(默認開啓)
14 -C --context [LINES] 顯示匹配行上下兩行(默認2行)
15 --[no]group 和這些一樣: --[no]break --[no]heading
16 -g --filename-pattern PATTERN 打印匹配PATTERN的文件名
17 -l --files-with-matches 顯示包含匹配的文件名(不顯示匹配的行)
18 -L --files-without-matches 只顯示不包含匹配項的文件名
19 --print-all-files 打印所有搜索到的文件的標題,甚至那些不包含匹配的文件。
20 --[no]numbers 打印行號。默認情況是在搜索流時省略行號。
21 -o --only-matching 只輸出每行匹配的部分
22 --print-long-lines 在很長的行上打印匹配信息(默認:>2k字符)。
23 --passthrough 當搜索一個流時,打印所有的行,即使它們不匹配。
24 --silent 抑制所有的日誌信息,包括錯誤
25 --stats 打印統計(掃描的文件、花費的時間等)。
26 --stats-only 打印統計信息,不打印其他信息(與搜索單個文件時的--計數相同)。
27 --vimgrep 像vim的:vimgrep /pattern/g那樣打印結果(它報告每一行的匹配結果)
28 -0 --null --print0 用null分隔文件名(用於'xargs -0')。
29
30搜索選項:
31 -a --all-types 搜索所有文件(包括隱藏文件)
32 -D --debug 可笑的調試(可能沒有用)
33 --depth NUM 目錄搜索最大深度(默認25)
34 -f --follow 跟隨鏈接進行搜索
35 -F --fixed-strings 爲了與grep兼容,--literal的別名。
36 -G --file-search-regex 根據正則匹配搜索指定類型的文件
37 --hidden 搜索隱藏文件 (但遵從 .*ignore 文件)
38 -i --ignore-case 不區分大小寫匹配
39 --ignore PATTERN 忽略匹配 PATTERN 的文件/目錄(也允許使用文字文件/目錄名稱)
40 --ignore-dir NAME 爲了與ack兼容,--ignore的別名
41 -m --max-count NUM 在一個文件中最大匹配的數量(默認: 10,000)
42 --one-device 不跟隨其他設備的鏈接搜索
43 -p --path-to-ignore STRING 在STRING使用.ignore文件
44 -Q --literal 不要將PATTERN解析爲正則表達式
45 -s --case-sensitive 敏感地匹配案例
46 -S --smart-case 不區分大小寫匹配,除非 PATTERN 包含大寫字符
47 --search-binary 搜索二進制文件
48 -t --all-text 搜索所有文本文件(不包括隱藏文件)
49 -u --unrestricted 搜索所有文件 (忽略 .ignore, .gitignore, 比如:搜索二進制和隱藏文件)
50 -U --skip-vcs-ignores 忽略VCS的忽略文件(指的是 .gitignore,.hgignore;仍然遵從.ignore)。
51 -v --invert-match 反向匹配
52 -w --word-regexp 只匹配整個單詞
53 -W --width NUM 在NUM字符後截斷匹配行
54 -z --search-zip 搜索壓縮文件中的內容
55
56文件類型:
57搜索可以限制在某些類型的文件中,例如:
58 ag --html needle 結果輸出到指定類型文件
59 - 在後綴爲 .htm、.html、.shtml 或 .xhtml 的文件中搜索“needle”
60
61有關支持的文件類型的列表,可以運行:
62 ag --list-file-types 列出支持的文件類型
實例
列出當前目錄下包含 npm
的文件
1➜ vue-project ag npm ./
2README.md
316:npm install
422:npm run dev
528:npm run build
來源:https://github.com/jaywcjlove/linux-command
最後修改於: Wednesday, January 31, 2024
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。