7

Кто-нибудь знает быстрый и простой способ использования "поиска в файлах" Notepad++(или другой функции) для поиска файлов, которые не содержат строки?

Например:

Перечислите все файлы в c:\inetpub\mywebsite, которые не содержат "footer.asp"

6 ответов6

6

Вы всегда можете использовать старый добрый DOS / командную строку и сделать что-то вроде этого:

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

Это даст вам список того, сколько раз поисковый термин встречается в файлах в каталоге, а вторая операция поиска, по которой передается первая, делает ее еще более сексуальной, отфильтровывая результаты первой, которую вы не нашли. интересует

Вы можете изменить *. * to * .asp, хотя, если вы ищете только ASP-файлы и вам интересно только просматривать ASP-файлы.

К сожалению, FIND не работает с рекурсивными подкаталогами, но вы можете поэкспериментировать с немного более сложной командой FINDSTR, если это не сработает.

1

Убедитесь, что в режиме поиска выбрано «Регулярное выражение».

Используйте следующее регулярное выражение, чтобы получить все файлы, которые не содержат «Текст идет сюда»:

(?s)\A((?!Text goes here).)+\z
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

Все возможности Notepad++ включены в набор плагинов сообщества, к которым Notepad++ предоставляет вам доступ. Если у вас последняя версия Notepad++, откройте меню "Плагины" и выберите "Диспетчер плагинов". Затем в этом списке плагинов вы можете просмотреть их все и попытаться найти что-то близкое к тому, что вам нужно.

Я думаю, что самый важный плагин - это TextFX, за которым следует плагин XML.

Также в диалоге поиска в Notepad++ есть опция регулярного выражения. Это будет сложная тема, но, возможно, ваш ответ лежит там.

0

Просто откройте все файлы на вкладках, затем в меню поиска (с критериями поиска) нажмите "Найти во всех открытых документах". Я регулярно нахожу эту функцию полезной.

0

Установите Cygwin, используйте grep:

Загрузите оболочку Cygwin Bash:

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

Где R является рекурсивным, а v инвертирует совпадение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .