Silver Searcher – 程序员的代码搜索工具, 一个比ack速度快n倍的代码搜索工具: ag, A Code Searching Tool for Programmers

Ag有什么好处?

  • 它比一个数量级快ack
  • 它忽略了你.gitignore和你的文件模式.hgignore
  • 如果您的源代码中有文件您不想搜索,只需将其模式添加到.ignore文件中即可。(*咳嗽* *.min.js*咳嗽*)
  • 命令名称比起第33行短ack,所有的键都在主排上!

Ag现在相当稳定 大多数更改是新功能,小错误修复或性能改进。比我的基准要快得多:

ack test_blah ~/code/  104.66s user 4.82s system 99% cpu 1:50.03 total

ag test_blah ~/code/  4.67s user 4.58s system 286% cpu 3.227 total

Ack和Ag发现了相同的结果,但是Ag的速度是34倍(3.2秒vs 110秒)。我的~/code目录是大约8GB。感谢git / hg / ignore,Ag只搜索了700MB。

还有各版本的性能图表

 

安装

MACOS

brew install the_silver_searcher

# OR
port install the_silver_searcher

 

Linux

apt-get install silversearcher-ag

# OR CentOS
yum install the_silver_searcher

# OR Fedora
dnf install the_silver_searcher

# OR Gentoo  
emerge the_silver_searcher

 

Silver Searcher是一个免费的开源跨平台源代码搜索工具,类似于ack(类似于程序员的grep工具)但速度更快。它运行在类Unix系统和Windows操作系统上。

Silver Searcherack之间的主要区别在于前者是为速度而设计的,基准测试证明它确实更快。

如果您花费大量时间阅读和搜索代码,那么您需要使用此工具。它旨在快速并忽略您不想搜索的文件。在本指南中,我们将展示如何在Linux中安装和使用Silver Searcher

 

如何在Linux中安装和使用Silver Searcher

银搜索包可在大多数Linux发行版,你可以很容易地显示它通过包管理器安装。

$ sudo apt install silversearcher-ag#Debian / Ubuntu 
$ sudo yum install epel-release the_silver_searcher#RHEL / CentOS
$ sudo dnf install silversearcher-ag #Fedora 22+
$ sudo zypper安装the_silver_searcher #openSUSE
$ sudo pacman -S the_silver_searcher #Arch

 

安装后,您可以使用以下语法运行ag命令行工具。

$ ag file-type options PATTERN /path/to/file

 

要查看所有支持的文件类型的列表,请使用以下命令。

$ ag --list-file-types

 

此示例显示如何递归搜索目录〜/ bin /下包含单词“root”的所有脚本。

$ ag root ./bin/
Silver Searcher - 程序员的代码搜索工具, 一个比ack速度快n倍的代码搜索工具: ag, A Code Searching Tool for Programmers
Silver Searcher – 程序员的代码搜索工具, 一个比ack速度快n倍的代码搜索工具: ag, A Code Searching Tool for Programmers

 

要打印匹配PATTERN的文件名和每个文件中的匹配数(除了匹配行数),请使用-c如图所示的开关。

$ ag -c root ./bin/
Silver Searcher - 程序员的代码搜索工具, 一个比ack速度快n倍的代码搜索工具: ag, A Code Searching Tool for Programmers
Silver Searcher – 程序员的代码搜索工具, 一个比ack速度快n倍的代码搜索工具: ag, A Code Searching Tool for Programmers

 

要区分大小写,请添加-s标记,如图所示。

$ ag -cs ROOT ./bin/
$ ag -cs root ./bin/
Silver Searcher - 程序员的代码搜索工具, 一个比ack速度快n倍的代码搜索工具: ag, A Code Searching Tool for Programmers
Silver Searcher – 程序员的代码搜索工具, 一个比ack速度快n倍的代码搜索工具: ag, A Code Searching Tool for Programmers

 

要打印搜索操作的统计信息,例如扫描的文件,所用的时间等,请使用该--stats选项。

$ ag -c root --stats ./bin/
Silver Searcher - 程序员的代码搜索工具, 一个比ack速度快n倍的代码搜索工具: ag, A Code Searching Tool for Programmers
Silver Searcher – 程序员的代码搜索工具, 一个比ack速度快n倍的代码搜索工具: ag, A Code Searching Tool for Programmers

 

-w标志告诉ag只匹配类似于grep命令的整个单词。

$ ag -w root ./bin/

 

您可以使用该--column选项在结果中显示列号。

$ ag --column root ./bin/
Silver Searcher - 程序员的代码搜索工具, 一个比ack速度快n倍的代码搜索工具: ag, A Code Searching Tool for Programmers
Silver Searcher – 程序员的代码搜索工具, 一个比ack速度快n倍的代码搜索工具: ag, A Code Searching Tool for Programmers

 

您还可以使用ag搜索纯文本文件,使用-t开关,并使用-a开关搜索所有类型的文件。此外,该-u开关还可以搜索所有文件,包括隐藏文件。

$ ag -t root /etc/

#OR
$ ag -a root /etc/

#OR
$ ag -u root /etc/

 

Ag还支持使用-z标志搜索压缩文件的内容。

$ ag -z root wondershaper.gz
Silver Searcher - 程序员的代码搜索工具, 一个比ack速度快n倍的代码搜索工具: ag, A Code Searching Tool for Programmers
Silver Searcher – 程序员的代码搜索工具, 一个比ack速度快n倍的代码搜索工具: ag, A Code Searching Tool for Programmers

 

您还可以使用该-f标志启用符号链接(简称符号链接)。

$ ag -tf root / etc / 

 

默认情况下,ag搜索25个深度目录,例如,您可以使用--depth开关设置搜索深度。

$ ag --depth 40 -tf root / etc /

 

有关更多信息,请参阅silver searcher的手册页以获取完整的使用选项列表。

$ man ag

 

要了解银色搜索器是如何工作的,请参阅其Github存储库:https://github.com/ggreer/the_silver_searcher

Silver Searcher是一个快速,有用的工具,用于搜索对搜索有意义的文件。它适用于程序员通过大型源代码库快速搜索。您可以尝试通过下面的评论表单与我们分享您的想法。

 

参考: Linux: Shell 神器, 神器软件, 命令行软件

 

本文: Silver Searcher – 程序员的代码搜索工具, 一个比ack速度快n倍的代码搜索工具: ag, A Code Searching Tool for Programmers

Leave a Reply