遞歸搜尋文件內引用的文件所需的 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 的內容將由 Web 伺服器自動複製到最終網頁。我在文件中尋找的內容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

我會用確認從命令列。它速度很快,它會顯示程式碼中的行號以及它們所在的檔案。它將遞歸地執行此操作,並且輸出的顏色會有點漂亮。您可以非常喜歡正規表示式,並且可以將其透過管道傳遞給自身,以搜尋使用 madAjaxStuff 的 unsafeMethodCall 找到的檔案。只是閱讀文件並發揮創意。如果你需要的話有關 Windows,請參閱此

安裝確認:

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

運行它,搜尋所有文件類型,不區分大小寫,使用文字模式遞歸

ack -airQ "unsafeMethodCall"

或使用 -l 開關來取得檔案路徑,然後透過另一個 ack 指令或其他工具進行管道傳輸。

ack -larQ "unsafeMethodCall"

相關內容