如何使用Notepad ++查找不包含字符串的目录中的文件


7

有没有人知道使用Notepad ++的“在文件中查找”(或其他功能)快速简便地查找不包含字符串的文件?

例如:

列出c:\ inetpub \ mywebsite中不包含“footer.asp”的所有文件


1
如何编写一个快速控制台应用程序来做到这一点?
Russ Cam 2010年

你试过grep吗?

Answers:


6

您总是可以使用旧的DOS /命令提示符,并执行以下操作:

find /c /i "footer.asp" c:\inetpub\mywebsite\*.* | find ": 0" /v

这将为您提供一个列表,列出搜索项在目录中的文件中出现的次数,第二个查找操作,第一个通过管道传递使其更加性感,通过从第一个过滤掉您的结果感兴趣的。

您可能想要更改*。*到* .asp虽然你只是在搜索ASP文件而你只想查看ASP文件。

遗憾的是,FIND不能与递归子目录一起使用,但如果不能解决这个问题,你可以尝试稍微复杂一点的FINDSTR命令。


1
从命令中删除“/ v”以获取不包含给定字符串的文件列表。
Prabu Arumugam 2015年

2

确保在搜索模式中选择“正则表达式”。

使用以下正则表达式获取所有不包含“Text goes here”的文件:

(?s)\A((?!Text goes here).)+\z

1
这个回答了这个问题。它适用于Notepad ++。
gnaanaa

0

虽然它是一个很棒的工具,但我认为你不能在Notepad ++中做到这一点。

这个Python脚本将打印出任何不匹配的文件名:

import glob
import os

def main():
    DIR = '/path/to/my/dir'

    path = os.path.join(DIR, "*")
    files = glob.glob(path)

    for f in files:
        fh = open(f,'r')
        fc = fh.read()
        if "footer.asp" not in fc:
            print "no match found in", f
        fh.close()

if __name__ == '__main__':
    main()

0

安装cygwin,使用grep

加载cygwin bash shell:

grep -Rv "footer\.asp" /cygdrive/c/inetpub/mywebsite

R递归在哪里并v反转匹配


1
如何使用cygwin代码仅在结果中获取文件路径?
Nam G VU

0

Notepad ++的整个功能包含在Notepad ++为您提供访问的社区插件集中。如果您有最新版本的Notepad ++,请下拉名为“Plugins”的菜单,然后选择“插件管理器”。然后,在该插件列表中,您可以浏览所有插件并尝试找到与您需要的内容相近的内容。

我认为最重要的插件是TextFX,后面是XML插件。

此外,在Notepad的Find对话框中,++是一个正则表达式选项。这将是一个高级主题,但它的答案可能就在那里。


0

只需打开选项卡中的所有文件,然后从查找菜单(带搜索条件)单击“查找所有已打开的文档”。我经常发现此功能很有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.