Replace a text part in textfile: Unterschied zwischen den Versionen

Aus Wiki-WebPerfect
Wechseln zu: Navigation, Suche
Zeile 4: Zeile 4:
 
== Regex ==
 
== Regex ==
 
  (?<=<YourStartString>)(.|\n)*(?=<YourEndString>)
 
  (?<=<YourStartString>)(.|\n)*(?=<YourEndString>)
Example for a text part between:
+
Example for a text part:
(?<=\#\#\#\.Test)(.|\n)*(?=\#\#\#)
+
 
+
 
  ### Test
 
  ### Test
 
  This Text will
 
  This Text will
Zeile 12: Zeile 10:
 
  PowerShell Skript
 
  PowerShell Skript
 
  ###
 
  ###
 +
Regex for the example text part below:
 +
(?<=\#\#\#\.Test)(.|\n)*(?=\#\#\#)
 +
 +
  
  

Version vom 27. Juni 2018, 15:33 Uhr

Goal

Replace the text part between ### Test: and ###.

Regex

(?<=<YourStartString>)(.|\n)*(?=<YourEndString>)

Example for a text part:

### Test
This Text will
changed with the following
PowerShell Skript
###

Regex for the example text part below:

(?<=\#\#\#\.Test)(.|\n)*(?=\#\#\#)



PowerShell Skript =

$FileToChangePath = "C:\Temp\FileToChange.txt"
$FileToChange = Get-Content $FileToChangePath -Raw
 
$TemplateTextPartPath = Get-Content "C:\Temp\TemplateTextPart.txt" -Raw
 
$RegexSearch = "### Test" #Search the head of text part
$RegexReplace = "(?<=\#\#\#\.Test)(.|\n)*(?=\#\#\#)"
 
If ($ZabbixConf -match $RegexSearch) {
    Write-Host "The text part in the file has been changed." -ForegroundColor Green
    $ChangeTextPart = $FileToChange -replace $RegexReplace, ("`r`n" + $TemplateTextPartPath + "`r`n")
    Set-Content -Path $FileToChangePath -Value $ChangeTextPart
} Else {
    Write-Host "The text part in the file has been added." -ForegroundColor Yellow
    Add-Content -Path $FileToChangePath -Value ("`r`n" + "`r`n" + "`r`n" + "`r`n" + "### Test" + "`r`n" + $TemplateTextPartPath + "`r`n" + "###" ) -PassThru
}


Regex101: https://regex101.com/