在Powershell中比较和区分文件

时间:2015-11-16 14:06:24

标签: powershell

我有两个文本文件,一个名为“master.txt”,另一个名为“slave.txt”。每个文本文件都包含一组用户,如下所示,我想将master.txt文件与slave.txt文件进行比较,并在slave.txt文件中报告缺少的文件。在当前结果中,似乎两个文件都进行了比较,并在两个文件中回复丢失的文件。有人可以帮帮我吗?

~]# cat master.txt
user1
user2
user3

~]# cat slave.txt
user2
user4

脚本:

$mfile = Get-Content "C:\master.txt"
$sfile = Get-Content "C:\slave.txt" 
foreach ($mobj in $mfile) {

foreach($sobj in $sfile){
        if ($mobj -ne $sobj) {
        Write-Output "$mobj is Not Found:"
        }
     }
}

目前的结果:

user1 is Not Found:
user1 is Not Found:
user2 is Not Found:
user3 is Not Found:
user3 is Not Found:

预期结果(这些是master.txt中存在但不存在于slave.txt中的结果):

user1 is Not Found:
user3 is Not Found:

1 个答案:

答案 0 :(得分:3)

比diff是一个比diff

更好的选择

这是一个示例代码,幻灯片指示器显示每个文件中缺少的数据

$a = Get-Content .\master.txt
$b = Get-Content .\slave.txt
Compare-Object $a $b

输出

InputObject SideIndicator
----------- -------------
user4       =>
user1       <=
user3       <=