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

使用PowerShell逐行对比CSV相邻行并删除重复行

PowerShell实现CSV相邻行COLUMN B对比筛选(匹配示例需求)

嘿,针对你需要的CSV相邻行对比需求,我整理了一个PowerShell脚本,完全贴合你给出的示例效果——也就是保留每组连续相同COLUMN B的第一行,以及所有和下一行COLUMN B不同的行,最后一行也会直接保留。

需求明确(结合示例)

原CSV数据中,只要当前行的COLUMN B和前一行相同,就删除当前行;如果不同则保留当前行,第一行直接保留。最终实现每组重复B值只留第一行、不同行全留的效果。

完整PowerShell脚本

# 替换为你的输入CSV文件路径
$inputCsvPath = "C:\your\path\input.csv"
# 替换为你的输出CSV文件路径
$outputCsvPath = "C:\your\path\output.csv"

# 读取CSV数据,转为PowerShell对象数组
$csvData = Import-Csv -Path $inputCsvPath

# 初始化结果数组,先加入第一行(必保留)
$filteredResult = @($csvData[0])

# 从第二行开始遍历,和前一行对比COLUMN B
for ($i = 1; $i -lt $csvData.Count; $i++) {
    $currentRow = $csvData[$i]
    $prevRow = $csvData[$i - 1]
    
    # 仅当当前行与前一行的COLUMN B不同时,加入结果
    if ($currentRow.'COLUMN B' -ne $prevRow.'COLUMN B') {
        $filteredResult += $currentRow
    }
}

# 导出筛选结果到新CSV,避免多余类型信息+UTF8编码兼容
$filteredResult | Export-Csv -Path $outputCsvPath -NoTypeInformation -Encoding UTF8

# 可选:在控制台打印结果,快速验证
Write-Host "筛选完成,结果如下:"
$filteredResult

关键细节说明

  1. CSV读取与处理:Import-Csv会把CSV转换成可直接操作的对象数组,无需手动拆分字符串,操作列名(比如'COLUMN B')就能获取对应值。
  2. 筛选逻辑:从第二行开始和前一行对比,不同则保留,自动跳过重复的行——完美匹配示例中删除2A、5C的需求。
  3. 导出设置:-NoTypeInformation会去掉PowerShell默认添加的类型头行,-Encoding UTF8确保文件在不同系统下打开不会乱码。

示例验证

用你给出的原数据测试:
原数据:

COLUMN ACOLUMN B
1A
2A
3B
4C
5C
6A

运行脚本后,输出结果完全符合期望:

COLUMN ACOLUMN B
1A
3B
4C
6A

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:10:34