我试图将2个CSV文件与日志信息进行比较(logs_all,logs_new) 格式:
我想在logs_new
中添加他们不存在于logs_all中的行$csv1 = Import-Csv $csvLogs_all -Delimiter "`t"
$csv2 = Import-Csv $csvLogs_new -Delimiter "`t"
$end = $csv1.Count
$count = 0
$diffobj = @()
# testtable is the name of the column, adjust it to your column header name
if($csv1.time[$count] -ne $csv2.time){
$diffobj += $csv2[$count]
}
$count++
}until($count -eq $end)
Write-Host "chekking logs"
$diffobj | export-csv $csvLogs_all -NoTypeInformation
但这不是很好,有人可以帮助我吗?
答案 0 :(得分:1)
查看Compare-Object cmdlet。
cmdlet执行以下操作:
Compare-Object
cmdlet会比较两组对象。一套 对象是“参考集”,另一组是“差异 集“。比较结果表明是否属性值 仅出现在参考集的对象中(由...表示)
<=
符号),仅在差异集中的对象中(由...表示)=>
符号)或者,如果指定了IncludeEqual
参数,则两者都有 对象(由==
符号表示)。
换句话说,它会比较两个对象并告诉你差异。
要比较两个可以运行的CSV文件
$file1 = import-csv -Path "C:\temp\Test1.csv"
$file2 = import-csv -Path "C:\temp\Test2.csv"
Compare-Object $file1 $file2 -property ColumnName -IncludeEqual