使用powershell比较两个CSV文件中的单元格
对这件事很陌生。我需要将一列与一个CSV文件中的用户名进行比较,将另一个CSV文件中的一列与用户名进行比较,如果存在重复项,则将其输出或删除 他们目前的样子: $File1: 我要找的是: Firstname,Lastname,Username,Duplicate Peter,Larsen,Larsen.123,True Pia,Jensen,Jensen.123,True Poul,Hansen,Hansen.123,False使用powershell比较两个CSV文件中的单元格,powershell,Powershell,对这件事很陌生。我需要将一列与一个CSV文件中的用户名进行比较,将另一个CSV文件中的一列与用户名进行比较,如果存在重复项,则将其输出或删除 他们目前的样子: $File1: 我要找的是: Firstname,Lastname,Username,Duplicate Peter,Larsen,Larsen.123,True Pia,Jensen,Jensen.123,True Poul,Hansen,Hansen.123,False 然后按顺序导入和导出之前和之后的CSV文件。将第二个文件读入哈希
然后按顺序导入和导出之前和之后的CSV文件。将第二个文件读入哈希表:
$users = @{}
Import-Csv 'file2.csv' | ForEach-Object {
$users[$_.Username] = $true
}
然后检查第一个CSV的每一行是否包含该哈希表中的用户名,以及检查结果:
(Import-Csv 'file1.csv') |
Select-Object *,@{n='Duplicate';e={$users.ContainsKey($_.Username)}} |
Export-Csv 'file1.csv' -NoType
我的做法如下:
# import csv file1
$file1 = Import-Csv -Path C:\tmp\file1.csv
# import csv file2 and select column "Username"
$file2 = Import-Csv -Path C:\tmp\file2.csv | % {$_.Username}
# create output/result hash table
$file3 = @()
# go through entries in file1
foreach($entry in $file1) {
# check if entry is in not in file2
if($file2 -notcontains $entry.Username) {
# add entry to output hash table
$file3 += $entry
}
}
# export result to csv
$file3 | Export-Csv -Path C:\tmp\file3.csv -NoTypeInformation
file3.csv将具有以下内容
Firstname,Lastname,Username
Poul,Hansen,Hansen.123
致意
Guenther到目前为止,您尝试过什么编码?欢迎使用Stackoverflow,请查看帮助部分,了解有关如何提问的详细信息。您的问题很好,只是需要您尝试的代码的详细信息
(Import-Csv 'file1.csv') |
Select-Object *,@{n='Duplicate';e={$users.ContainsKey($_.Username)}} |
Export-Csv 'file1.csv' -NoType
# import csv file1
$file1 = Import-Csv -Path C:\tmp\file1.csv
# import csv file2 and select column "Username"
$file2 = Import-Csv -Path C:\tmp\file2.csv | % {$_.Username}
# create output/result hash table
$file3 = @()
# go through entries in file1
foreach($entry in $file1) {
# check if entry is in not in file2
if($file2 -notcontains $entry.Username) {
# add entry to output hash table
$file3 += $entry
}
}
# export result to csv
$file3 | Export-Csv -Path C:\tmp\file3.csv -NoTypeInformation
Firstname,Lastname,Username
Poul,Hansen,Hansen.123