V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jdz
V2EX  ›  程序员

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

  •  
  •   jdz · 2021-10-20 09:57:29 +08:00 via Android · 4138 次点击
    这是一个创建于 1132 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有时候感觉速度差了不止一个数量级
    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 一切能用 javascript 实现的,最终都会用 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   ·   实用小工具   ·   3925 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 10:26 · PVG 18:26 · LAX 02:26 · JFK 05:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.