[英]Comparing cells in two CSV files using powershell
這很新。 我需要將一個CSV文件中具有用戶名的列與另一個CSV文件中具有用戶名的列進行比較,並輸出是否存在重復項或將其刪除。
它們當前的外觀:
$File1
:
Firstname,Lastname,Username Peter,Larsen,Larsen.123 Pia,Jensen,Jensen.123 Poul,Hansen,Hansen.123
$File2
:
Username Larsen.123 Andersen.123 Jensen.123
我在尋找什么:
Firstname,Lastname,Username,Duplicate Peter,Larsen,Larsen.123,True Pia,Jensen,Jensen.123,True Poul,Hansen,Hansen.123,False
它不一定必須是true / false輸出,也可以從File1或類似物中刪除所有重復的條目。 實質上,這只是將我們的AD中的用戶與我們的用戶數據庫中的用戶進行比較,以查看是否還有任何人具有不應該擁有的訪問權限。
編輯:
到目前為止,已對此進行了嘗試,可在此處找到類似的問題:
foreach ($user in $File1) {
$MatchAccount = (Compare-Object $File2 $user -Property 'Username' -PassThru).Value
$user = Add-Member -InputObject $user -Type NoteProperty -Name 'Value' -Value $MatchAccount
只需按此順序在導入前后導出CSV文件即可。
這是我的方法:
# 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
最好的問候根瑟
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.