gpt4 book ai didi

arrays - Powershell 根据子字符串对项目组进行计数

转载 作者:行者123 更新时间:2023-12-02 02:15:58 26 4
gpt4 key购买 nike

我有一个从包含多个元素的命令中收集的数据数组。每个项目的名称元素以三个或四个字符的标识符开头,后跟连字符。我想获取数组中包含相同标识符的所有项目的计数。

使用以下 PowerCLI (VMware) 命令收集的数据:

$items = Get-Datastore <Datastore Name> | Get-VM

数据示例:

NAME     STATUS     INFO     DETAIL
ABC-1234-XXXX PoweredOn Info Detail
ABC-1235-XXXX PoweredOn Info Detail
ABC-1236-XXXX PoweredOn Info Detail
BCA-1234-XXXX PoweredOn Info Detail
BCA-1235-XXXX PoweredOn Info Detail
CBA-1234-XXXX PoweredOn Info Detail
CBA-1235-XXXX PoweredOn Info Detail
CBA-1236-XXXX PoweredOn Info Detail
CBA-1237-XXXX PoweredOn Info Detail

我希望脚本给我类似以下内容:

NAME     COUNT
ABC 3
BCA 2
CBA 4

我确实没有代码示例,但我考虑过将 PowerShell“group”方法与 count 方法结合使用。我正在努力解决如何将所有内容组合成可用的东西。

组:

$array = $items | Group Name

计数:

$array.count

编辑:添加数据收集命令

最佳答案

您已经很接近了,但您不想按完整名称进行分组 - 您想将 name 拆分为 - 并仅采用第一个 [0] 元素。

这可以作为计算属性在{脚本 block }内动态完成。这里的组是期望的结果,在其他情况下(对不存在的属性进行排序)它不会在当前数据中留下痕迹。

这显示了数据的逐步转换:

$items = Get-Datastore <Datastore Name> | Get-VM
$Items
<小时/>
NAME          STATUS    INFO DETAIL
---- ------ ---- ------
ABC-1234-XXXX PoweredOn Info Detail
ABC-1235-XXXX PoweredOn Info Detail
ABC-1236-XXXX PoweredOn Info Detail
BCA-1234-XXXX PoweredOn Info Detail
BCA-1235-XXXX PoweredOn Info Detail
CBA-1234-XXXX PoweredOn Info Detail
CBA-1234-XXXX PoweredOn Info Detail
CBA-1234-XXXX PoweredOn Info Detail
CBA-1234-XXXX PoweredOn Info Detail
<小时/>
$Items | Group-Object {$_.Name.Split('-')[0]}
<小时/>
Count Name Group
----- ---- -----
3 ABC {@{NAME=ABC-1234-XXXX; STATUS=PoweredOn; INFO=Info; DETAIL=Detail}, ...
2 BCA {@{NAME=BCA-1234-XXXX; STATUS=PoweredOn; INFO=Info; DETAIL=Detail}, ...
4 CBA {@{NAME=CBA-1234-XXXX; STATUS=PoweredOn; INFO=Info; DETAIL=Detail}, ...
<小时/>
$Items | Group-Object {$_.Name.Split('-')[0]} | Select-Object Name,Count
<小时/>
Name Count
---- -----
ABC 3
BCA 2
CBA 4

使用 Group-Object -NoElement 进行编辑将只留下最后一步的重新排序

关于arrays - Powershell 根据子字符串对项目组进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50242072/

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