Powershell基于2列的比较删除行(csv文件)

Powershell基于2列的比较删除行(csv文件),powershell,csv,difference,Powershell,Csv,Difference,我有2个csv文件,它们都未排序: File1结构=名称、位置、日期、url File2结构=名称、url 我正在尝试使用powershell从文件1中删除任何包含与文件2相同名称的行 根据我的记录数量和重复次数,我的速度非常慢。 有更好的方法吗 $file1 = "file1.csv" $file2 = "file2.csv" $f1 = import-csv $file1 $f2 = import-csv $file2 $f1names = $f1.name $f2names = $f2

我有2个csv文件,它们都未排序: File1结构=名称、位置、日期、url File2结构=名称、url

我正在尝试使用powershell从文件1中删除任何包含与文件2相同名称的行

根据我的记录数量和重复次数,我的速度非常慢。
有更好的方法吗

$file1 = "file1.csv"
$file2 = "file2.csv"

$f1 = import-csv $file1
$f2 = import-csv $file2

$f1names = $f1.name
$f2names = $f2.name

$difference = compare-object -referenceobject $f1names -differenceobject $f2names -passthru

$results = $difference | % {
$f1 | ? { $f1.name -eq $_}
$f2 | ? { $f2.name -eq $_}
}

看看这是否更快:

$file1 = "file1.csv"
$file2 = "file2.csv"

$f2Names = import-csv $file2 | select -ExpandProperty Name

Import-Csv $file1 |
Where { $f2Names -notcontains $_.Name }