V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
flyingkid
V2EX  ›  问与答

推荐一个文本查找的软件吧

  •  
  •   flyingkid · 2012-02-20 17:05:44 +08:00 · 4275 次点击
    这是一个创建于 4452 天前的主题,其中的信息可能已经有所发展或是发生改变。
    能搜到我指定的一个目录里所有包含该关键字的文件。

    能支持的文件要包括ruby的源码,html,css,js这些
    21 条回复    1970-01-01 08:00:00 +08:00
    sobigfish
        1
    sobigfish  
       2012-02-20 17:06:57 +08:00
    sublime text 的search in files。。。其实很多文本编辑里都有
    mac的搜索也支持。
    sobigfish
        2
    sobigfish  
       2012-02-20 17:07:35 +08:00
    win的话 Turbo search
    Sunyanzi
        3
    Sunyanzi  
       2012-02-20 17:15:55 +08:00
    这么简单的需求何须用软件 ...

    grep -lr 'keyword' path

    l 代表显示文件 ... r 代表递归 ...

    如果搜索复杂内容可以加上 -e 使用正则匹配 ...
    flyingkid
        4
    flyingkid  
    OP
       2012-02-20 17:21:43 +08:00
    @Sunyanzi 谢谢这个屌!
    bitsmix
        5
    bitsmix  
       2012-02-20 17:24:03 +08:00
    @Sunyanzi grep 本来就可以写正则。。加 -e 干啥。。 除非你的 pattern 是以 - 开头的。。。cc @flyingkid
    kojp
        6
    kojp  
       2012-02-20 17:34:21 +08:00
    我表示editplus支持正则,有时候非常方便~~~
    freewizard
        7
    freewizard  
       2012-02-20 17:43:05 +08:00
    Sunyanzi
        8
    Sunyanzi  
       2012-02-20 17:49:38 +08:00
    @bitsmix do not give others something you are unsure of as the answer ...

    ----------------------------------------------------------------------------

    Sunyanzi-MacBook-Air:test Sunyanzi$ echo Sunyanzi > a.txt
    Sunyanzi-MacBook-Air:test Sunyanzi$ grep -r '*yanzi*' .
    Sunyanzi-MacBook-Air:test Sunyanzi$ grep -rE '*yanzi*' .
    ./a.txt:Sunyanzi
    Sunyanzi-MacBook-Air:test Sunyanzi$
    bitsmix
        9
    bitsmix  
       2012-02-20 18:02:07 +08:00
    @Sunyanzi

    Well...

    `-E` indicate that you run grep with `extended-regexp`, if you have any doubt about this, read the man page and wikipedia.

    beside, i pretty sure about what i said, and what i did.

    so, why don't you test your case with some regular express, not the extended one?
    lisztli
        10
    lisztli  
       2012-02-20 18:40:27 +08:00
    说下你的环境呗,如果*nix系统的话,就用grep -rn。
    如果你凑巧还是vim用户的话,那就装一下grep.vim

    如果你是windows用户,强烈推荐你用source insight + total commander, 后者经常有团购,可以买正版。
    如果你用vs系列的话,应该有一堆插件可以装(vc6那个年代有va,新的我就没有用过了)

    --------------
    其实我写这对都是为了拜8楼的硬嘴大牛的
    Sunyanzi
        11
    Sunyanzi  
       2012-02-20 18:49:35 +08:00
    好吧试了半天终于研究出来了 ...

    你是对的 ... 是我土鳖了 ...

    Sunyanzi-MacBook-Air:test Sunyanzi$ grep -r '^[A|S]un.*' .
    ./a.txt:Sunyanzi
    Sunyanzi-MacBook-Air:test Sunyanzi$

    成功测试通过 ... 那么改为 [ 使用扩展正则 ] 匹配好了 ...
    cynial
        12
    cynial  
       2012-02-20 18:56:59 +08:00
    歪下楼,请问 @lisztli linux 下有无 TC 的替代软件?皆因 win下的TC实在太好用了...
    lisztli
        13
    lisztli  
       2012-02-20 19:11:25 +08:00
    @cynial : 还真有,cli下有一个mc, x下有一个kde的,说是话都和tc差了好几条街。

    一个猥琐的解决办法就是wine或者visualbox里面跑一个tc,只用做文件的话还是非常方便的
    kaiix
        14
    kaiix  
       2012-02-20 19:22:53 +08:00
    ack-grep
    cuijiudai
        15
    cuijiudai  
       2012-02-21 23:58:16 +08:00
    window 下有everything,超快。
    mac和linux 用命令查找当前目录和子孙目录下的:
    find . -name "*.jsp" | xargs grep -n "这里输入要找到词"
    cuijiudai
        16
    cuijiudai  
       2012-02-21 23:59:23 +08:00
    哦,错了,everything是文件名的搜索。
    zhigang1992
        17
    zhigang1992  
       2012-02-22 00:06:56 +08:00
    用命令行选出来,mate到一个项目了。。。用TextMate
    zskj
        18
    zskj  
       2012-02-22 10:32:42 +08:00
    win下 文本替换专家 //对中文搜索不好 其他还行~~
    bitsmix
        19
    bitsmix  
       2012-02-22 10:38:44 +08:00
    @zhigang1992 还是 grep 吧.. mate 过去多慢,且不说版权的事情
    wynemo
        20
    wynemo  
       2012-02-22 10:56:16 +08:00
    順道問下 grep對中文支持如何
    nouh
        21
    nouh  
       2012-02-22 11:29:52 +08:00
    用Ack吧,比grep更好用,而且textmate和vim都有针对它的插件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4426 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:11 · PVG 18:11 · LAX 03:11 · JFK 06:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.