比grep更好用的搜索工具ag介绍
专栏:偷懒小技巧 Nov. 20, 2024, 5:28 p.m. 849 阅读
the silver searcher ag介绍

介绍

The Silver Searcher是一个代码快速搜索工具,命令是ag

可以自动忽略.gitignore.hgignore文件中的设置。这对于芯片工程师和程序员来说是非常友好的,因为90%的项目都采用了git、svn、hg等版本管理工具。万一不兴没有采用版本管理工具,你一样可以手动建立一个.ignore文件。

相比grepag的命令参数更简洁,且执行速度快N倍。快的原因是ag利用了多核CPU,并行搜索。并且还有其它多项优化措施,如内存、正则等。

安装方法

1、如果电脑可以连网,可以直接通过dnfyumapt-get等命令直接安装。

2、下载编译好的二进制文件:https://github.com/JFLarvoire/the_silver_searcher/releases

3、如果电脑不能连网,可以从github(https://github.com/JFLarvoire/the_silver_searcher)下载源码,编译安装。以centos为例:

yum install pcre-devel xz-devel zlib-devel
cd xxx 
./build.sh
make
make install

4、RHEL7/Centos7的ag也可以从这里直接下载:ag2.1.0.tar.gz,解压后加path里即可使用。

使用方法

  1. 简单pattern模式

# 默认不需要加双引号,忽略大小写
ag output *.v

# 不忽略大小写用 -s
ag -s output *.v

# 当pattern中含大写字母,也会自动取消忽略大小写,下面的例子仅配置大写的OUTPUT
ag OUTPUT *.v

# 反向匹配
ag -v outout *.v
  1. 正则模式

# 仅配置output在一行末尾的情况
ag output$ *.v

# 为避免`\`被转义,pattern用双引号或单引号括起来
ag "^\s*Signal" *.v

# 同时搜多个关键字(处于不同行),以下正则找出所有端口定义行
ag "(input|output|inout)" *.v
  1. 其他常用option

# 包括.gitignore
ag -u output .

# 搜索软链接
ag -f output .

# 只显示匹配的文件名
ag -l output .

# 只显示不配置的文件名
ag -L output .

# 查找文件名,代替find . -name "xxx"
ag -g sdf .

# 显示每个文件内配置到多少次
ag -c output .

# 配置行前后多显示几行
ag -A 2 -B 3 output .

# 与find、xargs配合,只搜索sim.log
find . -name "sim.log" | xargs ag fail

# 把color关掉,也可以与xargs配合
ag --nocolor -g "/sim.log" | xargs ag fail

人气较高的同类工具

ackhttps://github.com/beyondgrep/ack3
ripgrephttps://github.com/BurntSushi/ripgrep

感谢阅读,更多文章点击这里:【专栏:偷懒小技巧】
最新20篇 开设专栏