V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
youla
V2EX  ›  程序员

有没有什么软件,可以快速查询一个文件夹里所有文件(包含子文件夹)中的内容(字符串)?

  •  
  •   youla · 2020-12-09 10:18:21 +08:00 · 7258 次点击
    这是一个创建于 1479 天前的主题,其中的信息可能已经有所发展或是发生改变。

    伸手。

    第 1 条附言  ·  2020-12-09 13:18:22 +08:00
    不是我要故意无视 grep/findstr 的,是我在看到 Filelocator 时就已经明确这才是我要的软件,而不是 command 。

    因为在做一个软件汉化,代码写得一言难尽,没考虑多语言的软件,字符串全在代码里,用 grep 、findstr 显然不行吧,累。
    第 2 条附言  ·  2020-12-09 13:19:26 +08:00
    正确答案也是基于使用场景的正确答案,而不是仅仅有这个功能。
    第 3 条附言  ·  2020-12-10 09:42:05 +08:00
    我说不要 command,还抬杠 command 是软件,无聊吧??
    第 4 条附言  ·  2020-12-10 09:43:55 +08:00
    文件夹不知道多少层,底下也不知道多少文件,用 command 明显没有图形化界面的软件快速好吧。
    第 5 条附言  ·  2020-12-15 11:06:07 +08:00
    我都说了不要 command,怎么又成我不会 command 了??还我抬杠??最底下的人搞笑吧??

    难道我说我不想吃饭都能成抬杠吗??对,我他妈的就是不会吃饭。

    张口就别人不会命令行,你是知道的真多啊!!
    83 条回复    2022-04-23 21:38:09 +08:00
    msg7086
        1
    msg7086  
       2020-12-09 10:19:26 +08:00   ❤️ 3
    grep
    youla
        2
    youla  
    OP
       2020-12-09 10:19:46 +08:00
    AnyTXT Searcher
    shortmund
        3
    shortmund  
       2020-12-09 10:19:46 +08:00
    grep -r
    shlabc
        4
    shlabc  
       2020-12-09 10:26:01 +08:00   ❤️ 2
    FileLocator windows 下很好用
    annielong
        5
    annielong  
       2020-12-09 10:27:41 +08:00
    windows 下有一个 70 多 kb 的小工具,就像窗口就像 windows 内置的对话框一样,连名字都没有,可以查找 txt 和 htm 文件,
    youla
        6
    youla  
    OP
       2020-12-09 10:29:03 +08:00
    @annielong 厉害了~~


    @shlabc 很好用~~~找到了!!
    Vegetables
        7
    Vegetables  
       2020-12-09 10:46:15 +08:00
    emeditor 文件搜索
    vx812574395
        8
    vx812574395  
       2020-12-09 10:48:29 +08:00 via iPhone
    notepad++了解下?
    victor97
        9
    victor97  
       2020-12-09 10:56:07 +08:00 via Android
    findstr
    heyjei
        10
    heyjei  
       2020-12-09 10:58:47 +08:00 via Android
    windows 10 自带的搜索不好用嘛
    Lemeng
        11
    Lemeng  
       2020-12-09 10:59:18 +08:00
    搜索文件? everting?这类的
    fanyange
        12
    fanyange  
       2020-12-09 11:00:53 +08:00 via iPhone
    Mac 下 devonthink
    vx812574395
        13
    vx812574395  
       2020-12-09 11:01:52 +08:00 via iPhone
    bbdoc 了解下。electron 无处不在~
    bluehr
        14
    bluehr  
       2020-12-09 11:07:30 +08:00
    我以为大部分人都是用 everything 呢,没想到还有这么多软件。
    shuianfendi6
        15
    shuianfendi6  
       2020-12-09 11:16:26 +08:00
    ripgrep
    mcfog
        16
    mcfog  
       2020-12-09 11:23:37 +08:00 via Android
    如果是代码的话,ag ( the silver searcher )
    GrayXu
        17
    GrayXu  
       2020-12-09 11:27:36 +08:00
    grep -r 不需要装额外软件
    villivateur
        18
    villivateur  
       2020-12-09 11:41:00 +08:00
    vscode
    Elethom
        19
    Elethom  
       2020-12-09 11:42:26 +08:00 via iPhone   ❤️ 1
    @msg7086
    就猜会不会有人说 grep 。
    就猜会不会有人说了 grep 然后被 po 主无视。
    竟然都猜中了。
    zqz981
        20
    zqz981  
       2020-12-09 11:45:33 +08:00
    grep -r -an "字符串"
    aloxaf
        21
    aloxaf  
       2020-12-09 11:52:44 +08:00   ❤️ 1
    @Elethom
    确实,这种现象挺常见的。
    有时候在群里看到别人提问,明明已经有人给出了精准的回答,提问的人却和没看见一样。
    实在想不通为什么……
    charseer
        22
    charseer  
       2020-12-09 12:04:07 +08:00
    ripgrep-all rga
    codyfeng
        23
    codyfeng  
       2020-12-09 12:19:07 +08:00 via Android
    grep -r /any/path -e anyregex
    des
        24
    des  
       2020-12-09 12:23:18 +08:00 via iPhone
    @Elethom 你们都没发现 po 用的是 windows 吗
    @aloxaf
    wjm2038
        25
    wjm2038  
       2020-12-09 12:25:10 +08:00 via Android
    @des Windows 也可以下载啊。。
    user8341
        26
    user8341  
       2020-12-09 12:58:48 +08:00
    @Elethom
    就猜会不会有人说 findstr
    就猜会不会有人说了 findstr 然后被众人无视
    竟然都猜中了。
    for windows
    darknoll
        27
    darknoll  
       2020-12-09 13:00:45 +08:00
    vs
    vscode
    不都可以吗
    SuperMild
        28
    SuperMild  
       2020-12-09 13:01:33 +08:00
    如果文件不多,并且只查纯文本,很多工具可以用。

    如果文件很多,或都还要查 word/ppt 里面的文字,那 windows 自带的搜索功能就非常强大了,有索引,并且可以自由选择建索引的文件夹。
    darknoll
        29
    darknoll  
       2020-12-09 13:01:38 +08:00
    @bluehr everything 能搜文件内容?
    cmostuor
        30
    cmostuor  
       2020-12-09 13:09:47 +08:00
    @darknoll everything 搜索文档有 content:<text> 搜索文本内容. 你试试
    youla
        31
    youla  
    OP
       2020-12-09 13:14:19 +08:00
    @Elethom
    @aloxaf 主要是不属于我的应用场景吧,我要一个精准查找删除,用命令未免不是太麻烦,我也知道有 gnuwin32 。
    cmostuor
        32
    cmostuor  
       2020-12-09 13:32:09 +08:00
    @darknoll 试了一下简直卡的要死还不如 用 win 版的 busybox 里面的 grep 来的快
    cmostuor
        33
    cmostuor  
       2020-12-09 13:34:31 +08:00
    @vx812574395 npp 的作者有过反华言论 国内很多爱国的程序员基本不会用
    bluehr
        34
    bluehr  
       2020-12-09 13:37:35 +08:00
    qwe
    @darknoll 能呀,在 everything -> 工具栏(搜索) -> 高级搜索 -> 文件内容中包含的单词或者短语。 用熟练后还可以直接 搜索框 content 搜索
    tinyRat
        35
    tinyRat  
       2020-12-09 13:47:36 +08:00
    rigrep
    sorke
        36
    sorke  
       2020-12-09 14:18:15 +08:00
    vscode
    YuTengjing
        37
    YuTengjing  
       2020-12-09 15:23:01 +08:00
    vscode ctrl/cmd + shift + f
    bipy
        38
    bipy  
       2020-12-09 16:26:19 +08:00
    vscode +1
    ScoutWang
        39
    ScoutWang  
       2020-12-09 18:48:56 +08:00 via iPhone
    资源管理器搜索栏里:“内容:关键字”
    eggry
        40
    eggry  
       2020-12-09 20:16:31 +08:00 via Android
    vscode+1 打开该文件夹,用楼上的 ctrl+shift+f,非常方便
    secondwtq
        41
    secondwtq  
       2020-12-09 20:32:24 +08:00
    楼主主题就没写清楚,append 还是继续犯错误 ...

    你所谓的 "command",也是“软件”。或者要是按照 FSF 那群人的想法,所谓"command"是最基础的“软件”。网站、字体、硬件里的固件,都是“软件”
    LJ2010
        42
    LJ2010  
       2020-12-09 20:33:16 +08:00
    utools
    akaayy
        43
    akaayy  
       2020-12-09 20:58:48 +08:00
    @annielong 你勾起了我的兴趣?怎么找到它?有路径或者截图吗,文件名?
    hehe520347
        44
    hehe520347  
       2020-12-09 22:24:16 +08:00
    findstr !!!
    Altar
        45
    Altar  
       2020-12-09 22:32:37 +08:00
    counsel-rg
    psuwgipgf
        46
    psuwgipgf  
       2020-12-09 22:56:26 +08:00
    @YuTengjing 才知道 vscode 还有这个功能,感觉很好用。
    msg7086
        48
    msg7086  
       2020-12-10 00:04:22 +08:00
    建议下次可以把需求写得明确一些。
    我倒不是觉得被 offend 了,只是如果能写得明确一些的话,可以节约很多人的时间。
    不仅仅是你的时间,还包括回答者的。

    我自己做搜索,grep 和 vscode 都用,两个我觉得都挺好用的。
    laminux29
        49
    laminux29  
       2020-12-10 02:42:07 +08:00
    这种搜索不能用基于分词搜索原理的软件,只能用基于 strfind 原理的,推荐 Ultra Edit 。
    autoxbc
        50
    autoxbc  
       2020-12-10 03:24:21 +08:00
    自己用脚本语言写一个查找工具,就可以用高级语言描述你的查找要求,这个表现力碾压任何现成的查找软件
    xcstream
        51
    xcstream  
       2020-12-10 04:57:58 +08:00
    idea 打开文件夹 自动索引
    LudwigWS
        52
    LudwigWS  
       2020-12-10 08:41:58 +08:00 via iPhone
    @cmostuor 反正是免费软件🤔
    jakehu
        53
    jakehu  
       2020-12-10 08:52:13 +08:00
    ack
    sujiahang
        54
    sujiahang  
       2020-12-10 09:32:08 +08:00
    AnyTXT Searcher
    xchaoinfo
        55
    xchaoinfo  
       2020-12-10 09:33:30 +08:00
    sublime text ctrl+shift+F 也可以搜索当前文件夹内的 文本,
    阅读源码经常这么用, 非常方便
    NewIPIsComing
        56
    NewIPIsComing  
       2020-12-10 09:38:22 +08:00
    雖然我已經知道樓主並不是要找命令行程序,但我還是忍不住推薦一條現成的命令:
    #替換文件夾中所有文件中的 old_string 為 new_string
    grep -rl "old_string" . | xargs sed -i 's/old_string/new_string/g'

    # grep -rl: search recursively, and only print the files that contain “old_string”
    # xargs: take the output of the grep command and make it the input of the next command (ie, the sed command)
    # sed -i ‘s/old_string/new_string/g’: search and replace, within each file, old_string by new_string
    youla
        57
    youla  
    OP
       2020-12-10 09:40:39 +08:00
    @secondwtq "快速查询一个文件夹里所有文件(包含子文件夹)中的内容(字符串)",如果是 command,子文件夹查找就已经和快速基本没什么关系了,你非要抬杠,我也没办法,你认为 command 是软件,也没什么问题,我只认图形界面的叫软件,因为我懒得抬杠。
    f6x
        58
    f6x  
       2020-12-10 09:47:39 +08:00
    我只认图形界面的叫软件
    @youla 请把这句写在标题里. 不然很多人会点进来.
    youla
        59
    youla  
    OP
       2020-12-10 09:52:24 +08:00
    @f6x 你改个表字段不就行了,我又没有权限改。
    LikeMurphy
        60
    LikeMurphy  
       2020-12-10 10:01:21 +08:00
    vscode
    klgd
        61
    klgd  
       2020-12-10 10:13:42 +08:00
    vscode+1
    celeron533
        62
    celeron533  
       2020-12-10 10:16:59 +08:00
    windows 下可以试试 astrogrep,开源免费
    yorkw
        63
    yorkw  
       2020-12-10 10:17:47 +08:00
    UltraEdit,不过是收费的
    raptor
        64
    raptor  
       2020-12-10 10:22:09 +08:00
    》我只认图形界面的叫软件
    》 @youla 请把这句写在标题里. 不然很多人会点进来.

    我就是这样误入的。grep 这么简单的事情还要问。当然 GUI 的话 JB 家的 IDE 也都没问题。
    youla
        65
    youla  
    OP
       2020-12-10 10:22:37 +08:00
    @raptor 你改个表字段不就行了,我又没有权限改。
    youla
        66
    youla  
    OP
       2020-12-10 10:29:06 +08:00
    @raptor 顺便再补充一下,我也知道 grep,但是 grep 不快速啊??有 n 级路径,n 个要替换的字符串,怎么个快速法。
    golp2000
        67
    golp2000  
       2020-12-10 17:02:12 +08:00
    3 楼就说了,grep 有参数可以搜索子目录,不影响的 @youla
    youla
        68
    youla  
    OP
       2020-12-10 17:53:15 +08:00
    @golp2000 我只是说有很多内容要替换时,不快,我没有说不行。
    vx812574395
        69
    vx812574395  
       2020-12-11 10:43:46 +08:00 via iPhone
    @cmostuor 是吗?对他不是很熟~不过工具确是蒸🉐好用!
    secondwtq
        70
    secondwtq  
       2020-12-11 22:05:41 +08:00
    @youla #57 我在 #41 里面后面那些例子可能有些奇葩,本站是普遍认同“command”是“软件”,你就算不知道看到后面回复应该也知道了,然后还“只认图形界面的叫软件”,我觉得这才叫抬杠。

    另外,现有的“查找”这个需求,做得最快的,或者最快的之一,应该有那么一个或者几个命令行软件。命令行在“查找”这方面是不差的。“替换”的话,按规则的批量替换也是命令行最快,交互式的替换现在 GUI 做得也不错,使用 ncurses 界面的 vim 和 emacs 也能做。
    不过我寻思不论是主题还是 #57 都没说“替换”啊 ...
    youla
        71
    youla  
    OP
       2020-12-12 18:54:31 +08:00 via Android
    @secondwtq 我都说了不要 command,你还说 command 的是软件不,是你抬杠是谁抬杠???难道 grep 不是 command ??
    secondwtq
        72
    secondwtq  
       2020-12-12 19:39:45 +08:00
    @youla #71 我是提醒你本站是认为“command 属于软件”的,和你要不要 command 没有关系。

    再说了,你可以不认 command 是软件,我也不可以不认我“抬杠”啊。
    secondwtq
        73
    secondwtq  
       2020-12-12 19:40:00 +08:00
    @secondwtq #72 s/不可以 /可以
    youla
        74
    youla  
    OP
       2020-12-13 14:01:14 +08:00
    @secondwtq 你说 command 是软件没问题啊,但我重点已经说了不要 command,你还要怎么样?? command 是软件就不是 command 了???杠精????
    secondwtq
        75
    secondwtq  
       2020-12-13 14:02:31 +08:00
    @youla 你看,你说你知道 command 是软件就可以了。那个七划的字就没必要说了。
    secondwtq
        76
    secondwtq  
       2020-12-13 14:06:51 +08:00
    @youla #74
    > 你还要怎么样

    我之所以要强调(在本站的环境下)”command”是软件,就是因为本主题标题中要求的是“软件”,但是你实际需要的是“GUI 软件”(就不说具体需求是好久之后才 append 过去的了)。这导致大家不能理解你的实际需求,出现了一些没有实际帮助的回复。
    你现在知道了“command 是软件”,以后求助会更顺利一点。
    secondwtq
        77
    secondwtq  
       2020-12-13 14:13:13 +08:00
    哦对了,我也没有权限”改个表字段”。
    youla
        78
    youla  
    OP
       2020-12-13 14:15:51 +08:00
    @secondwtq 我只知道我 append 不要 command 时,你还没回复,我一直知道 command 是软件,我只是认为提问时我说软件可能大部分人会认为是带 GUI 界面的软件,我以后若是提问会说图形化界面的软件,防止杠精。
    youla
        79
    youla  
    OP
       2020-12-13 14:16:31 +08:00
    @secondwtq 你当然没有权限,不然你还会来抬杠??不早就把我 delete 了
    secondwtq
        80
    secondwtq  
       2020-12-13 14:23:37 +08:00
    @youla
    #78 ”提问会说图形化界面的软件”并不是为了“防止杠精”,而是为了问题能更好地被解决。
    #79 你为什么假设我会把你删除?
    这么说吧,如果我有权限的话,我会更改 V2EX 的算法,我对本站的主题排序算法不是很满意。比如隔壁 https://v2ex.com/t/734272 这个主题,点击率只有该主题的 4% 左右。
    raptor
        81
    raptor  
       2020-12-14 09:56:37 +08:00
    @youla 你杠这么多还不如直接说你不会用 CLI
    youla
        82
    youla  
    OP
       2020-12-15 11:02:09 +08:00
    @raptor 你就是个憨憨、是我杠吗??我不是说了不要 command 吗?谁不会??只是对我目前的东西而言没效率。
    beyondex
        83
    beyondex  
       2022-04-23 21:38:09 +08:00
    免费的有 anytxt ,不过功能比较简单,付费的有 Sea Desktop Search ,可以免费试用。
    https://seadesktopsearch.com/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5215 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 09:33 · PVG 17:33 · LAX 01:33 · JFK 04:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.