Сравните два текстовых файла с дубликатами и запишите отчетливые различия в текстовый файл - PullRequest
0 голосов
/ 07 февраля 2019

Я хочу сравнить 2 текстовых файла и вывести разницу в другом текстовом файле.

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

hostname_old.txt

server02
server05
server04
server06
server01

hostname_new.txt (имеет повторяющиеся имена)

server04
server01
server02
server04
server02

Результат:

server04
server02
server05
server06

Обратите внимание, как server04 и server02 присутствуют в этом списке различий, даже если они присутствуют во обоих входных данныхфайлы.

Это то, что я хочу:

server05
server06

1 Ответ

0 голосов
/ 07 февраля 2019

Используйте 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 выводит по умолчанию.

...