Powershell 根据 2 列的比较删除行(csv 文件)

Powershell delete row (csv file) based on compare of 2 columns

我有 2 个 csv 文件都没有排序: 文件 1 结构 = 名称、位置、日期、url 文件2结构=名称,url

我正在尝试使用 powershell 从 File1 中删除包含与 File2 中相同名称的任何行。

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

$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 }