Назад | Перейти на главную страницу

Найдите уникальные пути в одном текстовом файле из двух файлов с помощью powershell

У меня есть два текстовых файла со списком путей. У них есть общие пути, но у них также есть свои уникальные пути. Каждый путь находится в отдельной строке, и в каждом текстовом файле есть тысячи строк. Какую команду PowerShell я могу использовать для извлечения путей, уникальных для одного из файлов, скажем, file2.txt, и помещать эти уникальные пути в новый текстовый файл? Пути, указанные в новом текстовом файле, должны быть полностью уникальны для нового файла, поэтому, если file1.txt имеет путь C:\Build\2\11\s\Build\Api\Api.Entity\System.Web и file2.txt имеет путь C:\Build\2\11\s\Build\Api\Api.Search\CLM.Web.config тогда ни один путь не должен быть помещен в новый текстовый файл

Использовать Compare-Object. Демо Simplyfied:

> gc .\file1.txt
9
8
6
5
3
2

> gc .\file2.txt
1
2
4
5
7
8

> Compare-Object (gc .\file1.txt|sort) (gc .\file2.txt|sort)

InputObject SideIndicator
----------- -------------
1           =>
4           =>
7           =>
3           <=
6           <=
9           <=

Вы можете выбрать, какие уникальные элементы фильтровать с помощью SideIndicator.

> Compare-Object (gc .\file1.txt|sort) (gc .\file2.txt|sort)|? SideIndicator -eq '=>'

InputObject SideIndicator
----------- -------------
1           =>
4           =>
7           =>


> Compare-Object (gc .\file1.txt|sort) (gc .\file2.txt|sort)|? SideIndicator -eq '<='

InputObject SideIndicator
----------- -------------
3           <=
6           <=
9           <=