Я получил файл конфигурации балансировщика нагрузки F5, и меня попросили проанализировать его с помощью PowerShell, чтобы он создавал файл .txt для каждого найденного iRule. Я очень новичок в синтаксическом анализе, и я не могу обдумать это.
Мне удалось извлечь имя каждого правила и создать отдельный файл .txt, но я не могу записать в него содержимое правила. Поскольку не все правила идентичны, я не могу использовать Regex.
Выдержка из файла конфигурации:
ltm rule /Common/irule_name1 {
SOME CONTENT
}
ltm rule /Common/irule_name2 {
SOME OTHER CONTENT
}
Что у меня есть на данный момент
$infile = "F5\config_F5"
$ruleslist = Get-Content $infile
foreach($cursor in $ruleslist)
{
if($cursor -like "*ltm rule /*") #new object started
{
#reset all variables to be sure
$content=""
#get rulenames
$rulenameString = $cursor.SubString(17)
$rulename = $rulenameString.Substring(0, $rulenameString.Length -2)
$outfile = $rulename + ".irule"
Write-Host $outfile
Write-Host "END Rule"
#$content | Out-File -FilePath "F5/irules/" + $outfile
}
}
Как я могу заставить свой скрипт powershell считывать то, что находится в скобках каждого правила? (В данном случае «НЕКОТОРОЕ СОДЕРЖИМОЕ» и «ДРУГОЕ СОДЕРЖИМОЕ»)