![使用 powershell 从两个文件中的一个文本文件中查找唯一路径](https://linux22.com/image/723455/%E4%BD%BF%E7%94%A8%20powershell%20%E4%BB%8E%E4%B8%A4%E4%B8%AA%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E4%B8%80%E4%B8%AA%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%94%AF%E4%B8%80%E8%B7%AF%E5%BE%84.png)
我有两个带有路径列表的文本文件。它们共享一些路径,但也有自己独特的路径。每个路径都在不同的行上,每个 txt 文件上有数千行。我可以使用什么 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
,则新文本文件中不应放入任何路径
答案1
使用Compare-Object
。简化的演示:
> 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 <=