两种文件之间输出差异的方法(最好使用命令行)

时间:2011-12-16 12:01:23

标签: comparison diff

我熟悉tkDiff和WinMerge等工具,并且知道如何查看两个文件之间的区别。

我要做的是在一个文件中生成一个不存在于另一个文件中的元素报告。

例如:

File1包含:

apple
cool
dude
flan

File2包含:

apple
ball
cool
dude
elephant

我想制作一份包含以下内容的报告:

ball
elephant

或者,更好的是,这样的报告:

+ball
+elephant
-flan

有人知道可以做到这一点的工具吗?最好使用命令行选项。

WinMerge中的报告功能与我想要的并不太远,但是没有命令行选项(据我所知)。

提前致谢。

3 个答案:

答案 0 :(得分:43)

这可能适合你(GNU diff):

diff -u file1 file2 | sed -n '1,2d;/^[-+]/p'
+ball
-flan
+elephant

答案 1 :(得分:25)

你可能想要Unix comm utilityWindows versions包含在gnuwin32

  

NAME

   comm - compare two sorted files line by line
     

概要

   comm [OPTION]... FILE1 FILE2
     

说明

   Compare sorted files FILE1 and FILE2 line by line.

   With  no    options,  produce  three-column  output.  Column one contains
   lines unique to FILE1, column two contains lines unique to  FILE2,  and
   column three contains lines common to both files.

   -1     suppress lines unique to FILE1

   -2     suppress lines unique to FILE2

   -3     suppress lines that appear in both files

答案 2 :(得分:-4)

要将数据与命令提示符进行比较,您可以使用

COMP / a / l D:\ Folder1 \ data.txt D:\ Folder2 \ data.txt

以下是compare files and folders with command prompt的其他选项。