Программа/инструмент Windows, необходимый для рекурсивного поиска по файлам, на которые есть ссылки из файла

Программа/инструмент Windows, необходимый для рекурсивного поиска по файлам, на которые есть ссылки из файла

Следующий сценарий: Я просматриваю unsafeMethodCall()все мои веб-страницы. Этот метод небезопасен только в том случае, если есть ссылка наdoSomeCrazyAjaxStuff()

Мои веб-страницы используют сильные шаблоны (т.е. они были созданы с помощью JSF)

Итак, веб-страница состоит из чего-то вроде этого:

<ui:decorate template="/mypages/editing/someWebPagePart.xhtml">
unsafeMethodCall()

это просто копирует содержимое шаблона на текущую веб-страницу.

Так что если я ищу unsafeMethodCall()- проблема в том, что мне приходится вручную открывать someWebPagePart.xhtmlдля поиска crazyAjaxStuff()- но someWebPagePart.xhtml, возможно, использую другие шаблоны. Так что из одного попадания unsafeMethodCalls я могу получить МНОГО страниц, которые мне придется открыть.

Итак, я в основном хочу сканировать файл с именем "somefile.xhtml" на предмет любых вхождений шаблона. Если есть шаблон, я хочу искать в этом шаблоне, а также в шаблоне шаблона и т. д. :-)

Есть ли программа или инструмент, которые могли бы решить эту проблему?

[РЕДАКТИРОВАТЬ]

Итак, по сути у меня есть файл с таким содержимым: (это просто пример)

<div> 
<input value="enterusername"/>    
   </div>
[...more random web page contents like above this line....]
<ui:decorate template="/mypages/editing/someWebPagePart.xhtml">
     <my:tag>  unsafeMethodCall()</my:tag> <!-- this is potentially dangerous with another function call  -->
[...more random web page contents like below this line....]
<p></p>
<a href="#Other-Options" accesskey="n" rel="next">Other Options</a>

Когда я теперь открою d:/dev/workspace/WebContents/mypages/editing/someWebPagePart.xhtml, я смогу увидеть, что в конечном итоге отображается на странице, поскольку содержимое someWebPagePart.xhtml будет автоматически скопировано веб-сервером на конечную веб-страницу. То, что я ищу в файле, someWebPagePart.xhtml это что-то вроде этого:

<div> 
<input value="enterusername"/>    
   </div>
[...more random web page contents like above this line....]
<ui:decorate template="/mypages/editing/someotherPage.xhtml"> <!-- it could be in there as well -->
     <my:tag2>  crazyAjaxStuff()</my:tag2> <!-- searching this -->
[...more random web page contents like below this line....]
<p></p>
<a href="#Other-Options" accesskey="n" rel="next">Other Options</a>

С:

 <my:tag2>  crazyAjaxStuff()</my:tag2>

будет скопирован на ту же страницу, где unsafeMethodCallнаходится, это может привести к опасной ситуации, и мне придется внимательно изучить страницу.

Примечание: вполне возможно, что 3-я страница someotherPage.xhtmlсодержит опасныйcrazyAjaxStuff()

решение1

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

Установить акк:

curl http://betterthangrep.com/ack-standalone > ~/bin/ack && chmod 0755 !#:3

Запустите его, выполняя поиск по всем типам файлов, без учета регистра, рекурсивно с использованием буквального шаблона.

ack -airQ "unsafeMethodCall"

Или используйте ключ -l, чтобы просто получить пути к файлам, а затем передайте их через другую команду ack или другой инструмент.

ack -larQ "unsafeMethodCall"

Связанный контент