gpt4 book ai didi

powershell - 使用 Powershell 在同一数组中重新组合常见项目值

转载 作者:行者123 更新时间:2023-12-04 15:07:57 24 4
gpt4 key购买 nike

拜托,我需要帮助才能在 PowerShell 中使用数组执行此操作。我有一个类似于下面 $a 的数组:

$a = @('**ABC**:XYZ','**LMN**:PQR','**ABC**:RST','YJQ:PRS','**LMN**:SDK')

我想将 $a 数组更改为 $b:

$b = @('**ABC**:XYZ,RST','**LMN**:PQR,SDK','YJQ:PRS')

想法是,所有在“:”之前具有公共(public)值的项目都应该以类似“common_value:x,y,z”的格式组合,但其他没有公共(public)值的项目应该单独保留。任何提示或解决方案将不胜感激。

最佳答案

一个简单粗暴的例子:

    $a = @('**ABC**:XYZ','**LMN**:PQR','**ABC**:RST','YJQ:PRS','**LMN**:SDK')

$b=
$a |
Select-ObJect @{Name = 'Name'; Expression = { $_.Split(':')[0] }},
@{Name = 'Group'; Expression = { $_.Split(':')[1] }} |
Group-Object -Property Name |
ForEach-Object{ "'$($_.Name):$($_.Group.Group -join ',')'"}

$b = $b -join ','

$b

输出:

'**ABC**:XYZ,RST','**LMN**:PQR,SDK','YJQ:PRS'

这也有效:

    $a = @('**ABC**:XYZ','**LMN**:PQR','**ABC**:RST','YJQ:PRS','**LMN**:SDK')

$b =
$a | Group-Object {$_.Split(':')[0]} |
ForEach-Object{
"'$($_.Name):$(($_.Group.Split(':') | Group-Object { $Global:i % 2; $Global:i++ })[1].Group -join ',')'"
}

$b = $b -join ','
$b

关于powershell - 使用 Powershell 在同一数组中重新组合常见项目值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65744227/

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