我有一個很長的配置文件,我需要從中抽取一個子字符串,編輯其中的一些內容,並替換原始內容並保存該文件。我對PowerShell頗爲陌生,但我認爲最後兩部分我可以做。我遇到的問題首先是與正則表達式匹配。Powershell正則表達式用於兩個字符之間的多行字符串
[SECTION1]
SETTING1=ABC
SETTING2=DEF
SETTING3=GHI
[SECTION2]
SETTING1=ABC
ANOTHERSETTING=XYZ
[SECTION3]
SOMESETTING=DFH
FINALSETTING=OWA
我測試過上RegExr一個正則表達式,它的工作原理確定在那裏,但我還沒有嘗試到轉移到PowerShell腳本時,任何的喜悅。
(^\[SECTION2\](\n.+$){2})
我想要做的是找到「[SECTION2]」,並將所有內容匹配到「[」的下一個實例。我現在有它匹配「[SECTION2]」和兩條換行符,但想匹配到下一個方括號。
我已經嘗試了幾個命令來運行正則表達式,但似乎沒有任何東西給我帶回任何東西。例如:
Select-String -Path 'PATH_TO_FILE' -Pattern '(^\[SECTION2\](\n.+$){2})'
我在做一些根本性的錯誤嗎?
我已經編輯我原來的職位。我懷疑我沒有正確理解這個實現,所以對此有所幫助。我嘗試使用你提供的正則表達式,但是也沒有產生任何結果。 –
@MikeWhitehead看到我的編輯。 – briantist
我試過了你的建議,但它什麼都沒有返回。 Get-Content將文件拉入,所以第一部分實際上是讀取文件,但Select-String似乎無法找到匹配。例如,是否有任何方法來匹配[SECTION2]和[SECTION3]的開頭方括號之間的所有內容? –