我有一个文本文件,格式如下:
服务器名称:srvrX1
IP地址:
地点:纽约
操作系统:
服务器名称:srvrX2
IP地址:
地点:纽约
操作系统:Windows Server 2012
XYZ:
服务器名称:srvrX3
IP地址:
位置:STK
操作系统: Win2k3
服务器名称:srvrX4
IP地址:
位置:STK
操作系统:Win2k8
服务器名称:srvrX5
IP地址:
位置:STK
操作系统: RedHat Linux5
服务器名称:srvrX6
IP地址:
地点:TKY
操作系统: Windows Server 2012
每个服务器的字段数量可能不同,并且每个服务器信息之间的空行数量是随机的。我想要表格格式的输出。我是powershell的新手,有人能帮我吗?
非常感谢。Nel
发布于 2013-09-10 20:41:28
您可以将内容拆分为两个或多个换行符,然后再次拆分每个返回的元素,解析内容并为每个元素创建新对象:
$content = Get-Content .\test.txt | Out-String
$content -split '(?:\r\n){2,}' | Foreach-Object{
$pso = New-Object PSObject
$_ -split '(?:\r\n)' | Where-Object {$_} | ForEach-Object{
$var = $_ -split ':'
$pso | Add-Member -MemberType NoteProperty -Name $var[0].Trim() -Value $var[1].Trim()
}
$pso
}
ServerName IP Location OS
---------- -- -------- --
srvrX1 NY
srvrX2 NY Windows Server 2012
srvrX3 STK Win2k3
srvrX4 STK Win2k8
srvrX5 STK RedHat Linux 5
srvrX6 TKY Windows Server 2012
https://stackoverflow.com/questions/18716939
复制相似问题