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

PowerShell脚本:按列去重CSV并保留指定列含特定值的条目

处理CSV去重并保留指定优先级条目

直接用Select-Object -Unique确实搞不定,因为它只会保留每组重复项的第一个,没法按你要的Accessrights优先级筛选。用PowerShell可以这么做:

步骤说明

  1. 读取CSV文件:用Import-Csv指定分号分隔符,把CSV内容转成可操作的对象集合
  2. 分组去重:按Name和Employeenumber这两个唯一标识字段分组
  3. 筛选优先级条目:对每个分组,优先保留Accessrights为Write的条目;如果分组里没有Write,就保留原有的条目
  4. 导出结果:把处理后的对象集合导出为新的CSV文件

完整代码

# 读取原始CSV(替换为你的文件路径)
$csvData = Import-Csv -Path "你的原始文件路径.csv" -Delimiter ';'

# 分组处理,保留优先级条目
$processedData = $csvData | Group-Object -Property Name, Employeenumber | ForEach-Object {
    # 先找分组里Accessrights为Write的条目
    $writeEntry = $_.Group | Where-Object { $_.Accessrights -eq 'Write' }
    if ($writeEntry) {
        $writeEntry
    } else {
        # 没有Write的话,保留分组里的第一个条目
        $_.Group[0]
    }
}

# 导出处理后的CSV(替换为你的输出路径)
$processedData | Export-Csv -Path "处理后文件.csv" -Delimiter ';' -NoTypeInformation

验证结果

用你提供的示例数据测试,运行后会得到期望的结果:

Name;Employeenumber;Accessrights
Max;123456;Write
Berta;133556;Write
Jhonny;161771;ReadOnly

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:40:16