Programa/herramienta de Windows necesaria para buscar recursivamente archivos a los que se hace referencia desde dentro de un archivo

Programa/herramienta de Windows necesaria para buscar recursivamente archivos a los que se hace referencia desde dentro de un archivo

Siguiente escenario: busco unsafeMethodCall()en todas mis páginas web. Este método sólo es inseguro en caso de que haya una referencia dedoSomeCrazyAjaxStuff()

Mis páginas web utilizan plantillas sólidas (es decir, fueron creadas con JSF)

entonces una página web consta de algo como esto:

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

esto simplemente copia el contenido de la plantilla en la página web actual.

Entonces, si busco unsafeMethodCall(), el problema es que tengo que abrir manualmente someWebPagePart.xhtmlpara buscar crazyAjaxStuff(), pero someWebPagePart.xhtmles posible que esté usando otras plantillas. Entonces, con 1 visita de UnsafeMethodCalls puedo terminar con MUCHAS páginas que tengo que abrir.

Básicamente, quiero escanear un archivo llamado "somefile.xhtml" para detectar cualquier aparición de una plantilla. Si hay una plantilla, también quiero buscar en esa plantilla, y también quiero buscar en la plantilla de la plantilla, etc. :-)

¿Existe algún programa o herramienta que pueda solucionar este problema?

[EDITAR]

Básicamente tengo un archivo con este contenido: (esto es sólo un ejemplo)

<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>

Cuando abra d:/dev/workspace/WebContents/mypages/editing/someWebPagePart.xhtml podré ver lo que finalmente se muestra en la página, porque el contenido de someWebPagePart.xhtml será copiado automáticamente por el servidor web. a la página web final. Lo que estoy buscando en el archivo someWebPagePart.xhtml es algo como esto:

<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>

Desde:

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

se copiará en la misma página donde unsafeMethodCallse encuentra, esto puede provocar una condición peligrosa y tendría que mirar de cerca la página.

Nota: es muy posible que la tercera página someotherPage.xhtmlcontenga información peligrosacrazyAjaxStuff()

Respuesta1

yo usaríaackdesde la línea de comando. Es rápido, te mostrará los números de línea en tu código y los archivos donde se encuentran. Lo hará de forma recursiva y el resultado será un poco bonito con los colores. Puede ser realmente sofisticado con la expresión regular y puede canalizarla hacia sí misma para buscar entre los archivos que encuentre con unsafeMethodCall para CrazyAjaxStuff. Justolee la documentacióny sé creativo. Si lo necesitaspara Windows mira esto

Instalar confirmación:

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

Ejecútelo, buscando todos los tipos de archivos, sin distinguir entre mayúsculas y minúsculas, de forma recursiva con un patrón literal

ack -airQ "unsafeMethodCall"

O use el modificador -l para obtener las rutas de los archivos y luego canalícelas a través de otro comando de confirmación u otra herramienta.

ack -larQ "unsafeMethodCall"

información relacionada