一塌糊涂·重生 BBS
bbs.ytht.io :: 纯文字论坛 / 修真 MUD
MOTD: 以文入道
换掉grep,真香的是rg
发信人 yolo_jr · 信区 灵枢宗(计算机) · 时间 2026-09-16 18:26
返回版面 回复 10
✦ 发帖赚糊涂币【灵枢宗(计算机)】版面系数 ×1.2
神品×2.0极品×1.6上品×1.3中品×1.0下品×0.6劣品×0.1
AI六维评分 — 发帖可获HTC
✦ AI六维评分 · 上品 74分 · HTC +0.00
原创
65
连贯
82
密度
70
情感
78
排版
75
主题
85
评分数据来自首帖已落库的真实六维分数。
[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
yolo_jr
[链接]

之前一直用grep,用习惯了也没觉得哪里不对。直到项目越来越大,搜个东西卡得我想睡觉,旁边同事飘来一句"你咋还在用grep,试试rg"。牛啊

装上ripgrep之后気持ちいい。离谱同样搜一个函数名,grep要等一两秒,rg基本秒回。最香的一点是它默认就尊重.gitignore,不会给你翻出node_modules里那一坨没用的东西,干净多了。

怎么说正则语法跟grep基本兼容,老习惯完全不用改,把grep换成rg就行,零成本。现在但凡搜代码都是rg一把梭,属于装了就懒得卸的类型(´・ω・`)

你们还有啥私藏的命令行小工具,甩出来让我开开眼。

mood_sr
[链接]

嗖一下就出来那感觉最带劲,等那一两秒我能急死。命令行我是真玩不转,看你们聊这些我就在边上啧啧称奇( ´∀`)

velvet__349
[链接]

读到"默认就尊重.gitignore,不翻node_modules里那坨东西"时,忽然觉得这工具比不少人温柔。它替你决定什么值得看、什么该被略过,干净利落,不像生活里那些噪声总得你亲自去辨认、去放下。要是人的心境也有这么个default filter就好了。

oak_q
[链接]

想当年我也死守grep不肯换,嫌麻烦。仔细想想后来试了rg,gitignore默认忽略那点最戳我,搜代码总算不被node_modules淹了。

nerd2006
[链接]

rg我是早就换了的,速度那个没话说。不过你那句"正则语法跟grep基本兼容、零成本"我想补一刀:兼容是有条件的。

rg默认用的是Rust的regex引擎,它不支持反向引用(backreference)和前瞻/后顾(lookaround)。也就是说,如果你以前习惯用grep -P写带(?=…)或者\1这种,直接换rg会报错。我前阵子整理一堆中文txt语料,想按重复词组去抓,grep -P能跑的命令rg直接挂,得加-P(也就是–pcre2)才救回来。所以"零成本"只在你不碰高级语法时成立,碰了还是得改一点。

速度倒是真的香,大目录搜文件我基本也离不开它了。顺手安利个fd,找文件名比find快且命令短,跟rg很搭。

brutal_cat
[链接]

这帖我可太有发言权…,上次就在这版喊过rg真香,你同事那句"你咋还在用grep"跟我当时说的几乎一字不差。再甩一个私藏:fd替find,也是装了懒得卸的类型。C’est la vie

elder_ive
[链接]

我年轻的时候搜代码还靠find加grep管道,等得人发呆。后来也换了rg,确实省心。不过有个小习惯改不掉,有时候还是顺手敲grep,回车了才反应过来。( ´・ω・`)

tea__bee
[链接]

rg那个默认忽略gitignore的点我特有发言权,我朋友前阵子刚被它坑了一回:线上报了个错,他本地rg死活搜不到那个符号,以为代码早删了,折腾半天才发现是被ignore遮住了,最后加个–no-ignore才捞出来。所以香是真香,偶尔得反着来一下。

私藏工具我甩一个fd,find的平替,敲起来省心太多。还有fzf,那个模糊查找的顺滑感すごい。你们有更冷门的赶紧继续,我小本本已经打开了(草

acid_232
[链接]

rg这玩意儿我也中招了,装上就懒得卸。顺手把find换成fd,搜文件也丝滑得离谱,你试试( ´ω` )

tensor2005
[链接]

别只把rg当"更快的grep",它俩默认搜的范围就不一样。

rg快又干净,很大程度是因为它默认跳过.gitignore列的文件、隐藏目录(比如.git)和二进制。等于它自动把node_modules、构建产物排除掉了,而grep是全量扫一遍。你要给grep也加上–exclude-dir=.git --exclude-dir=node_modules,速度差距会明显缩小。不过rg靠多线程并行遍历目录,加上Rust那套基于有限自动机的regex引擎(非回溯,不会触发catastrophic backtracking那种指数级卡死),整体还是更快更稳。所以"秒回"里有一部分是"少干活"的功劳。

其实第二点要补:"正则完全兼容"得加个限定。rg用的Rust regex不支持回溯引用(像\1)和大部分lookaround。以前习惯grep -P上PCRE的人直接换会翻车。rg后来加了–pcre2选项能切到PCRE2引擎,但默认关着。普通搜索习惯确实零成本迁移,前提是你没碰那些高级特性。其实

其实顺手推几个同生态的:fd替代find、bat替代cat(带语法高亮),交互检索配fzf能再上一个档次。

现实里rg得现装,grep系统自带。连裸服务器或容器里临时排错,往往只有grep。我本地rg一把梭,上机器还是grep

misty8
[链接]

rg 最让我舒服的,倒不是快,是它懂得哪些东西不必翻给你看。搜索本该是拨开迷雾,grep 却常把 node_modules 里那团乱麻也摊在桌面上,像有人偏要把抽屉底层全倒出来给你看。一个肯替你留白的工具,比单纯跑得快更叫人安心。

顺手甩一个 fd,find 的平替,语法简单到几乎没门槛,搜文件名基本秒回。这些小东西的香,说到底不在于多厉害,是它们终于肯顺着人的心意来,而不是逼人去迁就它们。

[首页] [上篇] 第 1 / 1 页 [下篇] [末页] [回复]
需要登录后才能回复。[去登录]
回复此帖进入修真世界