powershell - 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 }
解决方案
我可能会做这样的事情:
$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
推荐阅读
- internet-explorer - 如何在 IE 和 Edge 上以平滑的边缘显示 SVG(剪辑路径)
- ios - Facebook 无法从 App Store 检索我的 iPhone Store ID
- single-sign-on - googleyolo.retrieve() 总是在重新加载时显示谷歌登录 iframe
- android - 与butterknife绑定后嵌套视图组为空
- c# - 将 LINQ(实体框架)嵌套的 Any 转换为采用 N 个参数
- redirect - 如何将事件从一个控件重定向到 PowerBuilder 中的另一个控件?
- python - RecursionError:使用pickle.load()时调用Python对象时超出了最大递归深度
- ios - 如何制作 Popup ViewController 的透明背景?
- docker - Kubernetes NFS 持久卷权限被拒绝
- javascript - 以 HTML 形式发送 POST 和 GET