파일 내에서 참조 된 파일을 재귀 적으로 검색하는 데 필요한 Windows 프로그램 / 도구


3

다음 시나리오 : unsafeMethodCall()모든 웹 페이지를 탐색 합니다. 이 방법은 참조가있는 경우에만 안전하지 않습니다doSomeCrazyAjaxStuff()

내 웹 페이지가 강력한 템플릿을 사용하고 있습니다 (예 : JSF로 제작)

따라서 웹 페이지는 다음과 같이 구성됩니다.

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

템플릿의 내용을 현재 웹 페이지로 복사합니다.

따라서 검색 unsafeMethodCall()하면 문제는 someWebPagePart.xhtml검색을 위해 수동으로 열어야 crazyAjaxStuff()하지만 someWebPagePart.xhtml다른 템플릿을 사용하는 것일 수 있습니다. 따라서 unsafeMethodCalls의 1 회 히트에서 많은 페이지를 열어야합니다.

따라서 기본적으로 템플릿 발생에 대해 "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위치 와 같은 페이지로 복사됩니다. 위험한 상황이 발생할 수 있으므로 페이지를 자세히 살펴 봐야합니다.

참고 : 세 번째 페이지 someotherPage.xhtml에 위험 요소가 포함되어 있을 가능성이 매우 높습니다crazyAjaxStuff()


1
"참조가있다"는 무슨 뜻입니까? 최소한 두세 개의 파일을 포함하고 실제로 요약 한 다른 호출을 포함하도록 예제를 확장 할 수 있습니까?
Tamara Wijsman

내 답변을 편집
-Toskan

JSP를 사용하는 것처럼 보이기 때문에 일반적으로 Java에 익숙 할 것입니다. 빠른 명령 줄 유틸리티를 작성하는 것이 가장 좋을 것 같습니다. 출시 된 프로그램의 기능으로 포함되는 유스 케이스와는 상당히 분리 된 것으로 보입니다.
corsiKa

답변:


0

커맨드 라인에서 ack 을 사용 합니다. 빠르면 코드의 줄 번호와 파일이있는 파일을 보여줍니다. 재귀 적으로 수행하고 출력은 색상이 약간 예쁘게 나타납니다. 정규 표현식을 사용하면 정말 멋지게 될 수 있으며 unsafeMethodCall로 찾은 파일을 crazyAjaxStuff에 대해 검색하도록 파이프 할 수 있습니다. 그냥 설명서를 참조 하고 창의력. Windows에 필요한 경우 이것을 참조하십시오.

ack 설치 :

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

문자 그대로 패턴을 사용하여 모든 파일 유형을 무심코 재귀 적으로 검색하여 실행하십시오.

ack -airQ "unsafeMethodCall"

또는 -l 스위치를 사용하여 파일 경로를 얻은 다음 다른 ack 명령 또는 다른 도구를 통해 파일 경로를 파이프하십시오.

ack -larQ "unsafeMethodCall"

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.