比较文件1中存在但文件2中不存在的两个文本文件和输出行

时间:2019-11-13 20:26:19

标签: powershell

我需要比较2个文本文件。这是一个示例:

PS > type file1
1
2
3
4
5

PS > type file2
3
4
5
6

现在,我需要找到file1中存在但file2中没有的行。

Linux/bash中,我可以这样操作:

$ comm -23 file1 file2
1
2

如何在PowerShell中做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用compare-object scriptlet查找差异。

PS > compare-object (get-content file1) (get-content file2)
InputObject SideIndicator
----------- -------------
6           =>
1           <=
2           <=

区别在于.net对象的数组形式。因此,您可以在该数组中进行过滤,并仅选择边号为<=的那些条目。然后仅打印对象的InputObject字段。

PS > compare-object (get-content file1) (get-content file2)  | Where-Object -FilterScript { $_.SideIndicator -eq "<=" } | Select-Object -ExpandProperty InputObject
1
2