如何使用PowerShell查找两个文本文件中的重复字符串?
找出两个文本文件中的重复内容解决方案
你的命令无法得到结果的原因有两点:
- 文件名包含空格时未用引号包裹,PowerShell会将空格后的部分识别为参数而非文件名的一部分
Select-String的用法不符合需求——它是将管道传入的内容作为搜索规则去匹配目标文件,而非查找两个文件内容的交集
以下是两种可行的解决方法:
方法一:使用Compare-Object(推荐)
这是PowerShell原生的对比工具,专门用于集合差异分析:
Compare-Object (Get-Content "file A") (Get-Content "file B") -IncludeEqual -ExcludeDifferent | Select-Object -ExpandProperty InputObject
参数说明:
-IncludeEqual:保留两个文件中内容相同的项-ExcludeDifferent:排除两个文件中内容不同的项Select-Object -ExpandProperty InputObject:提取出最终的重复内容文本
方法二:利用集合的包含特性筛选
先读取两个文件内容,再筛选交集:
$fileAContent = Get-Content "file A" $fileBContent = Get-Content "file B" $fileAContent | Where-Object { $fileBContent -contains $_ }
逻辑说明:
- 分别将两个文件的内容读取到变量中
- 遍历文件A的每一行,筛选出同时存在于文件B中的内容
执行上述任意一种命令,都能得到你期望的重复内容:
7685449 9875654
内容的提问来源于stack exchange,提问作者peareon
相关产品推荐
相关产品推荐

