Редактирование CSV-файла — удаление всей строки похожих значений на основе условия VIA Powershell

Необходимо удалить всю строку файла CSV, когда значение столбца A (т.е. DevID) равно значению столбца B (т.е. ProdID)

Мой код:

$MergedFile= Import-Csv "C:\Users\d-mansings\Desktop\Mergedata.csv"

 $MergeTable=@{} 
   foreach($line in $MergedFile){
    if(Compare-Object $line.DevID $line.ProdID){
    echo "Not Matched, Keep the file as it"}
    else{ echo "Row need to be deleted"}
        }

Вместо Row need to be deleted мне нужна команда, которая бы удаляла всю строку.

Ниже приведен мой файл CSV:

"DevID","ProdID","cfname"
"-----","-----","------"
"10201","10202","Risk ID"
"10202","20202","Issue ID"
"10203","20203","Dependency ID"
"10204","20204","Server ID"
"10205","20205","Parent Application ID"
"10206","20206","Application Service ID"
"10207","20207","Application Supportability"
"10208","20208","Application Compatibility"
"10300","20300","Application Status"
"10301","20302","Contact ID Type 2"
"10302","20302","Contact ID Type 3"
"10303","20303","Contact ID Type 4"
"10304","10304","Business Service Manager"
"10308","20308","Server Location Name:" 

person Abhaya Ghatkar    schedule 20.07.2016    source источник


Ответы (1)


Вы можете использовать командлет Where-Object для фильтрации всех записей, где DevID не равно ProdID, и направить результат в командлет Export-Csv, чтобы сохранить обратно csv:

Import-Csv 'source.csv' | 
    Where { $_.DevID -ne $_.ProdID } | 
    Export-Csv -Path 'destination.csv' -NoTypeInformation

Вывод:

"DevID","ProdID","cfname"
"10201","10202","Risk ID"
"10202","20202","Issue ID"
"10203","20203","Dependency ID"
"10204","20204","Server ID"
"10205","20205","Parent Application ID"
"10206","20206","Application Service ID"
"10207","20207","Application Supportability"
"10208","20208","Application Compatibility"
"10300","20300","Application Status"
"10301","20302","Contact ID Type 2"
"10302","20302","Contact ID Type 3"
"10303","20303","Contact ID Type 4"
"10308","20308","Server Location Name:"
person Martin Brandl    schedule 20.07.2016
comment
Работал ! спасибо :) В настоящее время я не могу пометить это как ответ, сделаю, как только у меня будет разрешение. - person Abhaya Ghatkar; 20.07.2016