# ripgrep 是个好东西

项目地址

# 背景

工作中最害怕的事情之一就是:上游服务变更,作为下游,可能多个服务都要调整,每当如此都要通过IDE打开每个每个项目,根据关键词查找代码,看看项目中是否有使用到上游服务。 也许是习惯了,又或许是麻木了,我看周边每个同时都如此做着重复的事情。

不想这样,我大抵是厌倦了,横竖不想这么麻烦,打开谷歌搜了下"shell 文本查找",歪歪扭扭的每页都写满了grep

# 解决方案

grepLinux系统内置的一款强大的文本搜索工具,支持使用正则表达式递归对目录中的文件内容进行匹配。

用法如下:

grep -F -r "KEY_WORD" --exclude-dir=node_modules *  -B 3 -A 3

含义讲解:

-F:需要匹配字符串为固定字符串(非正则表达式)

-r:进行递归匹配

--exclude-dir=node_modules: 进行文件匹配的时候排查node_modules目录

*: 对任意文件名进行内容匹配

-B 3 -A 3:对匹配到的内容,打印前3行+后3行

相比,逐个项目查找,利用grep已经极大提升了效率

我作为一个程序员,找到grep这个命令来进行内容匹配,这也是很合理的。

# 更好的方案

grep 作为系统内置的内容匹配工具,已经很好了,然而,对于特大型项目,速度还是不够理想,开源方案如AckAg都是更优秀的方案

从16年起,其实就已经有了更好的(最好)的替代方案:ripgrep

ripgrep 相比 grep,有很多特性,

  1. 多线程,运行更快
  2. 自动递归搜索
  3. 支持 .gitignore,自动跳过已经忽略的文件
  4. 支持压缩文件搜索(zip、xz、bzip2、lz4、等等)
  5. 等等(懒得写了🤣)
最后更新: Wed, 09 Aug 2023 14:10:15 GMT

0 评论

加载中...
访问量:-