У меня есть два текстовых файла со списком путей. У них есть общие пути, но у них также есть свои уникальные пути. Каждый путь находится в отдельной строке, и в каждом текстовом файле есть тысячи строк. Какую команду 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 <=