我想比较两个相同列名的csv文件,并且必须用另一个csv文件更新空列值。
CSV-1:
名称,电子邮件,PHONENO
x,x @ y.com,0854
Y,Y @ x.com,
CSV2
名称,电子邮件,PHONENO
X,X @ y.com,0854
Y,Y @ x.com,980
我想比较2个csv并从csv 2更新csv1中缺少的列
答案 0 :(得分:0)
如果您的电子邮件数据在两个csv中都相同,并且您想要更新电话字段,则可以使用此字段:
$csv1 = import-csv C:\temp\csv1.csv
$csv2 = import-csv C:\temp\csv2.csv
foreach ($Item in $csv1)
{
$Name = $item.name ## you can add if needed
$Email = $item.email
$phone = $item.phoneno
$csv2item = $csv2 | ? {$_.email -eq $Email}
if ($phone -eq $null -or $phone -eq "")
{$Item.PhoneNo = $csv2item.PhoneNo}
}
$csv1 | Export-Csv "c:\temp\newcsv1.csv"
但如果电子邮件不相同,您可以将此{$_.email -eq $Email}
更改为其他相同的项目,例如姓名等......
您可以将此作为解决方法并根据需要进行更改...