我試圖在幾百頁中找到一個函數,並使用Powershell刪除它。我可以在一條線上比賽,但我遇到了一些問題,需要進行多線比賽。任何幫助,將不勝感激。Powershell正則表達式查找和刪除函數
功能我試圖找到:我使用的是不匹配的多線
Protected Function MyFunction(ByVal ID As Integer) As Boolean
Return list.IsMyFunction()
End Function
代碼:
gci -recurse | ?{$_.Name -match "(?i)MyPage.*\.aspx"} | %{
$c = gc $_.FullName;
if ($c -match "(?m)Protected Function MyFunction\(ByVal ID As Integer\) As Boolean.*End Function") {
$_.Fullname | write-host;
}
}
該解決方案針對搜索的偉大工程。我之所以沒有選擇它作爲答案,是因爲我在回寫內容時遇到了問題。要使用.net [regex] :: replace函數將刪除換行符,而標記爲答案的解決方案將修復搜索問題並保留設置內容的格式。有關更多詳細信息,請參閱http://stackoverflow.com/questions/2726599/powershell-replace-lose-line-breaks再次感謝。 –