用了 ripgrep 后,完全接受不了 grep 了,大点的目录 grep 跟不能用差不多,而 rg 却很轻松搞定 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
jdz
V2EX    程序员

用了 ripgrep 后,完全接受不了 grep 了,大点的目录 grep 跟不能用差不多,而 rg 却很轻松搞定

  •  
  •   jdz 2021-10-20 09:57:29 +08:00 via Android 4598 次点击
    这是一个创建于 1477 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有时候感觉速度差了不止一个数量级
    22 条回复    2021-10-21 04:54:11 +08:00
    liuxu
        1
    liuxu  
       2021-10-20 10:04:50 +08:00
    那是自然,rust 强力支撑
    liuxu
        2
    liuxu  
       2021-10-20 10:07:00 +08:00   9
    但是不应该对用了几十年的老工具抱有轻蔑的态度,毕竟互联网能发展起来它们是基石
    jdz
        3
    jdz  
    OP
       2021-10-20 10:08:00 +08:00 via Android
    @liuxu 不是轻蔑吧,没有态度,就是使用的一种感觉
    jdz
        4
    jdz  
    OP
       2021-10-20 10:09:16 +08:00 via Android   3
    @liuxu 感觉跟 rust 关系不大,应该是软件重新设计了,用 c 或 cpp 应该一样可以实现这个速度,只是没人做
    wellsc
        5
    wellsc  
       2021-10-20 10:09:17 +08:00
    sliver searcher 也不错
    liuxu
        6
    liuxu  
       2021-10-20 10:18:18 +08:00
    @jdz rust 强力支撑不是我说的,是作者说的,原因是用了 rust 正则引擎
    dragondove
        7
    dragondove  
       2021-10-20 10:54:45 +08:00
    grep 的性能其实也很好,应该是遇到奇怪的 edge case 了。如果没有正则需求的话 fgrep (即 grep -F )差不多是速度最快的工具(之前无聊自己做过测试,被性能震惊了,然后看了作者 mailling list,是基于 BM 算法优化过来的),有正则需求可以直接用 grep -P,只用 grep 的情况比较少。性能对比的话很多工具的 github repo 都有提供对比结果,贴个 rg repo 里的一个 benchmark https://github.com/BurntSushi/ripgrep/blob/master/benchsuite/runs/2020-10-14-archlinux-frink/summary
    github2020
        8
    github2020  
       2021-10-20 11:34:06 +08:00
    学习了,后面去研究下这个 ripgrep
    superrichman
        9
    superrichman  
       2021-10-20 11:53:22 +08:00
    配合 fzf 使用更香
    wangxn
        10
    wangxn  
       2021-10-20 11:56:10 +08:00 via Android   1
    Rust 并没有什么黑科技,纯粹是新作者新团队新代码新依赖库高度优化的结果,换成 C++这些确实也可以做到,只是没人去做罢了。
    jedihy
        11
    jedihy  
       2021-10-20 12:21:56 +08:00
    已经是必装软件了,主要用来看日志。
    e7
        12
    e7  
       2021-10-20 12:51:22 +08:00
    @wellsc 你撤回,让我说[狗头]
    FightPig
        13
    FightPig  
       2021-10-20 13:24:13 +08:00
    一切可以用 rust 重写的,都在重写
    GPLer
        14
    GPLer  
       2021-10-20 14:44:49 +08:00
    @FightPig 一切能用 javascipt 实现的,最终都会用 Javascript 实现。
    wolfie
        15
    wolfie  
       2021-10-20 15:42:51 +08:00
    @GPLer #14
    isnum iseven isodd
    vance123
        16
    vance123  
       2021-10-20 16:00:39 +08:00
    第一反应是楼主太夸张了,然而试用了一下直呼 woc
    btchinainfo
        17
    btchinainfo  
       2021-10-20 16:25:45 +08:00
    学习成本如何?
    boboliu
        18
    boboliu  
       2021-10-20 16:30:31 +08:00
    确实,之前试用 rg 之后现在已经在到处装 rg 了
    c8c
        19
    c8c  
       2021-10-20 16:52:39 +08:00
    fzf 也很方便。也可以试试
    meetcw
        20
    meetcw  
       2021-10-20 19:38:20 +08:00   1
    很多基础工具都有 rust 重写的版本了

    ls -> exa
    find -> fd
    cat -> bat
    du -> dust

    体验都不错。就是每个作者对工具的命名都有自己的想法。。。
    yhrzpm
        21
    yhrzpm  
       2021-10-21 01:43:47 +08:00
    嫌慢的话加个 parallel 命令咋样
    bao3
        22
    bao3  
       2021-10-21 04:54:11 +08:00 via iPhone
    grep 加个参数 P 是不是就可以了……
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1435 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 16:46 PVG 00:46 LAX 08:46 JFK 11:46
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86