gpt4 book ai didi

powershell - 将列表输出转换为表(对象)

转载 作者:行者123 更新时间:2023-12-02 23:33:32 25 4
gpt4 key购买 nike

从 iperf3 我过滤了以下输出:

& $exe -c my_host | Select-Object -Index (2..12)

[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 11.4 MBytes 95.4 Mbits/sec
[ 4] 1.00-2.00 sec 11.2 MBytes 94.2 Mbits/sec
[ 4] 2.00-3.00 sec 11.2 MBytes 94.3 Mbits/sec
[ 4] 3.00-4.00 sec 11.2 MBytes 94.5 Mbits/sec
[ 4] 4.00-5.00 sec 11.2 MBytes 94.2 Mbits/sec
[ 4] 5.00-6.00 sec 11.2 MBytes 94.4 Mbits/sec
[ 4] 6.00-7.00 sec 11.2 MBytes 94.4 Mbits/sec
[ 4] 7.00-8.00 sec 11.2 MBytes 94.3 Mbits/sec
[ 4] 8.00-9.00 sec 11.2 MBytes 94.2 Mbits/sec
[ 4] 9.00-10.00 sec 11.2 MBytes 94.5 Mbits/sec

如何将其转换为 powershell 中的表/对象以进行进一步处理?

最佳答案

看起来您已经有一个字符串数组作为输出,它会生成一个固定宽度的表。

下面我使用 Here-String 来模拟该数组

$output = @"
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 11.4 MBytes 95.4 Mbits/sec
[ 4] 1.00-2.00 sec 11.2 MBytes 94.2 Mbits/sec
[ 4] 2.00-3.00 sec 11.2 MBytes 94.3 Mbits/sec
[ 4] 3.00-4.00 sec 11.2 MBytes 94.5 Mbits/sec
[ 4] 4.00-5.00 sec 11.2 MBytes 94.2 Mbits/sec
[ 4] 5.00-6.00 sec 11.2 MBytes 94.4 Mbits/sec
[ 4] 6.00-7.00 sec 11.2 MBytes 94.4 Mbits/sec
[ 4] 7.00-8.00 sec 11.2 MBytes 94.3 Mbits/sec
[ 4] 8.00-9.00 sec 11.2 MBytes 94.2 Mbits/sec
[ 4] 9.00-10.00 sec 11.2 MBytes 94.5 Mbits/sec
"@ -split '\r?\n'

$result = for ($i = 1; $i -lt $output.Count; $i++) {
if ($output[$i] -match '^(?<id>.{6})(?<interval>.{19})(?<transfer>.{13})(?<bandwidth>.*)') {
[PsCustomObject]@{
'ID' = $matches['id'].Trim('[] ')
'Interval' = $matches['interval'].Trim()
'Transfer' = $matches['transfer'].Trim()
'BandWidth' = $matches['bandwidth'].Trim()
}
}
}

# output on screen
$result

#output to CSV file
$result | Export-Csv -Path 'X:\table.csv' -NoTypeInformation

结果:

ID间隔传输带宽
-- -------- -------- ---------
4 0.00-1.00 秒 11.4 兆字节 95.4 兆比特/秒
4 1.00-2.00 秒 11.2 兆字节 94.2 兆比特/秒
4 2.00-3.00 秒 11.2 兆字节 94.3 兆比特/秒
4 3.00-4.00 秒 11.2 兆字节 94.5 兆比特/秒
4 4.00-5.00 秒 11.2 兆字节 94.2 兆比特/秒
4 5.00-6.00 秒 11.2 兆字节 94.4 兆比特/秒
4 6.00-7.00 秒 11.2 兆字节 94.4 兆比特/秒
4 7.00-8.00 秒 11.2 兆字节 94.3 兆比特/秒
4 8.00-9.00 秒 11.2 兆字节 94.2 兆比特/秒
4 9.00-10.00 秒 11.2 兆字节 94.5 兆比特/秒

关于powershell - 将列表输出转换为表(对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60881160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com