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 }
我有 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 }