首页 > 解决方案 > Powershell比较2个csv文件

问题描述

我正在尝试比较两个都包含电子邮件地址的文件。例如 text1.csv 有 800 个地址,text2.csv 有 200 个。text2.csv 中的大多数电子邮件地址都在 text1.csv 中,但不是全部。我需要从 text2.csv 中导出所有不在 text1.csv 中的电子邮件地址。两个文件的属性都是 email

我尝试了这样的事情,但我没有得到正确的结果:

Compare-Object -ReferenceObject (Get-Content -Path C:\scripts\test1.csv) -DifferenceObject (Get-Content -Path C:\scripts\test2.csv) | Where-Object{ $_.SideIndicator -eq "=>" }

    

我也试过这个没有结果

$file2 | Where-Object { $_.email -NotIn $file1 }

标签: powershellcsv

解决方案


我可能会做这样的事情:

$emails = (Import-Csv -Path 'X:\file1.csv').email
$result = Import-Csv -Path 'X:\file2.csv' |
          Where-Object { $emails -notcontains $_.email }

# output to new file
$result | Export-Csv -Path 'X:\missingEmails.csv' -NoTypeInformation

推荐阅读