差异文件内容

差异文件内容

我有两个纯文本文件,每个文件包含按字母顺序排序的字符串列表,每行一个字符串。我想比较这两个文件,并输出仅存在于文件 2 中的所有字符串。

我希望该操作无需任何第三方工具即可完成,或者只需安装在 Windows 命令行环境中可以“正常”找到的工具(如 GNU Diffutils、Powershell 等)。输出应为文本形式(文件或命令行输出)。

例子:

File 1 contents:
A
C
D

File 2 contents:
A
B
C
E

Result wanted:
B
E

答案1

通信 -13 文件_a 文件_b

-13-1 -3


差异 ab | grep "^>"
差异 ab | sed -n“/^>/ s/^> //p”

你可以从Unx工具类——是的,已经过时了,但是对于这个来说已经足够了。

答案2

在 Windows PowerShell 中(直接端口grawity 的 diff/grep 组合):

Compare-Object (Get-Content file1) (Get-Content file2) |
    Where-Object { $_.SideIndicator -eq '=>' } |
    Select-Object -ExpandProperty InputObject

这可以缩写为:

diff (gc file1) (gc file2) | ?{$_.SideIndicator -eq '=>'} | %{$_.InputObject}

或者如果您经常需要它,可以将其包装在一个函数中。

相关内容