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

时间:2015-04-13 15:47:47

标签: powershell csv difference

我有两个csv文件都没有排序: File1结构= name,loc,date,url File2 structure = name,url

我正在尝试使用powershell从File1中删除包含相同名称的File1中的所有行。

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

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

1 个答案:

答案 0 :(得分:0)

看看这不是更快:

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

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

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