0

我正在尝试将 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

但这不是很好,有人可以帮助我吗?

4

1 回答 1

1

查看Compare-Object cmdlet。

该 cmdlet 执行以下操作:

Compare-Objectcmdlet 比较两组对象。一组对象是“参考集”,另一组是“差异集”。

比较的结果表明一个属性值是只出现在参考集的对象中(用 <=符号表示),还是只出现在差异集的对象中(用=>符号表示),或者,如果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
于 2018-04-20T10:32:12.117 回答