首页 > 解决方案 > 比较两个重复的文本文件并将明显的差异写入文本文件

问题描述

我想比较 2 个文本文件并在另一个文本文件中输出差异。

compare-object (get-content c:\temp\hostname_old.txt) (get-content c:\temp\hostname_new.txt) | Select-Object -ExpandProperty InputObject | Out-File $Location

主机名_old.txt

server02
server05
server04
server06
server01

hostname_new.txt(有重复的名称)

server04
server01
server02
server04
server02

结果:

server04
server02
server05
server06

请注意此差异列表中的server04server02存在方式,即使它们存在于两个输入文件中。

这就是我要的:

server05
server06

标签: powershellcomparecompareobject

解决方案


在比较之前用于Select-Object -Unique消除重复项:

compare-object -PassThru `
  (get-content c:\temp\hostname_old.txt) `
  (get-content c:\temp\hostname_new.txt | Select-Object -Unique)

正如您对上一个问题的回答一样,-PassThru它用于直接传递不同的行,而没有默认输出的[pscustomobject]包装器(通过其.SideIndicator属性指示差异的源集) 。Compare-Object


推荐阅读