Я использую Powershell для написания скрипта, который на основе входного файла разделяет каждый раздел и манипулирует основными данными. С практической точки зрения у меня есть TXT-файл, который отформатирован так:
-------Group_Name_1-------
member: Name:Host1 Handle:123
member: Name:Host2 Handle:213
member: Name:Host3 Handle:321
-------Group_Name_2-------
member: Name:Host10 Handle:1230
member: Name:Host20 Handle:2130
Group (member of): Firewall subnet
etc...
До сих пор я придумал следующий скрипт:
$filepath = 'C:\test.txt'
$getfile = Get-Content $filepath -Raw
$regex_group_name = '.*-------'
foreach($object in $splitfile){
$lines = $object.Split([Environment]::NewLine)
$data_group_name = @($lines) -match $regex_group_name
$data_group_value = $data_group_name -replace '-------' , ''
Write-Host $data_group_value
}
Я пытаюсь чтобы получить следующий вывод для каждой группы (например):
add group name Group_Name_1 members.1 "Host1" members.2 "Host2" members.3 "Host3" groups.1 "Firewall Subnet"
И я застрял в 2 частях:
1) Сценарий выше, очевидно, не будет работать, потому что функция «split» в основном удалит имя группы: как я могу подойти к этой проблеме, чтобы получить желаемый результат?
2) Я понятия не имею, как изменить вывод, чтобы отразить эффективное число участников (если членов 2, то будут выведены только члены.1 и участники.2; альтернативно члены.1, члены.2, члены.3 и т. д. c ...).
Спасибо заранее за вашу помощь.