有谁知道使用 Notepad++ 的“在文件中查找”(或其他功能)来查找不包含字符串的文件的快速简便的方法?
例如:
列出 c:\inetpub\mywebsite 中不包含“footer.asp”的所有文件
答案1
确保在搜索模式中选择了‘正则表达式’。
使用以下正则表达式获取所有不包含“Text goes here”的文件:
(?s)\A((?!Text goes here).)+\z
答案2
您可以随时使用旧的 DOS / 命令提示符并执行如下操作:
find /c /i "footer.asp" c:\inetpub\mywebsite\*.* | find ": 0" /v
这将为您提供搜索词在目录中的文件中出现的次数的列表,第一个通过管道传输的第二个查找操作通过过滤掉您不感兴趣的第一个结果使其更加吸引人。
但是,如果您只是在查找 ASP 文件并且只对查看 ASP 文件感兴趣,那么您可能需要将 *. * 更改为 *.asp。
不幸的是,FIND 不适用于递归子目录,但如果这不起作用,您可以尝试使用稍微复杂一点的 FINDSTR 命令。
答案3
虽然它是一个很棒的工具,但我认为你不能在 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()
答案4
Notepad++ 的全部功能都包含在 Notepad++ 为您提供的一组社区插件中。如果您拥有最新版本的 Notepad++,请下拉菜单“插件”,然后选择“插件管理器”。然后,您可以在该插件列表中浏览所有插件,并尝试找到接近您需要的插件。
我认为最重要的插件是 TextFX,其次是 XML 插件。
另外,Notepad++ 的“查找”对话框中有一个正则表达式选项。这可能是一个高级主题,但您的答案可能就在那里。