You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中基于冒号分隔的第4个子串对数组排序?

PowerShell按指定子串排序CPE数组

直接用PowerShell的Sort-Object结合字符串分割就能实现需求,因为冒号分隔的第4个子串对应分割后数组的索引3(PowerShell数组索引从0开始),具体实现如下:

基础实现

# 定义待排序的CPE数组
$cpeArray = @(
    'cpe:2.3:o:juniper:junos',
    'cpe:2.3:h:hp',
    'cpe:2.3:a:microsoft:sql_server'
)

# 按冒号分割后的第4个子串进行字母排序
$sortedArray = $cpeArray | Sort-Object { ($_ -split ':')[3] }

# 输出排序结果
$sortedArray

执行后会输出排序后的数组:

cpe:2.3:h:hp
cpe:2.3:o:juniper:junos
cpe:2.3:a:microsoft:sql_server

健壮性优化

如果数组中存在格式不规范的CPE字符串(比如分割后不足4段),可以添加判断避免报错:

$sortedArray = $cpeArray | Sort-Object { 
    $splitParts = $_ -split ':'
    # 仅当分割后至少有4段时取第4个元素,否则用空字符串兜底
    $splitParts.Count -ge 4 ? $splitParts[3] : ''
}

内容的提问来源于stack exchange,提问作者aidenmitchell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 19:15:11