如何输出两个文本文件之间的差异?

rog*_*ert 0 python comparison grep text sed

我想知道如何比较两个文本文件,突出显示它们之间的区别?例如:

FILE1.TXT

AAAAA
BBBBB
CCCCC
Run Code Online (Sandbox Code Playgroud)

FILE2.TXT

AAAAA
BBBBB
Run Code Online (Sandbox Code Playgroud)

我希望在比较这两个文件后得到以下输出:

CCCCC
Run Code Online (Sandbox Code Playgroud)

我正在使用Python,并尝试sed和grep没有运气(我对linux shell的方式也感兴趣).

Bry*_*ley 6

Python有一个专门用于执行此操作的库:difflib.您可以向它提供两个文本文件的内容,它将返回两者之间的差异.

有关示例,请参阅http://pymotw.com/2/difflib/

  • 我知道该怎么做,谢谢 :) 但可能有一个更直接的解决方案,也许使用 shell 命令 (2认同)

c4f*_*t0r 6

我在python中使用过这个,很简单,但它有效

>>> File1 = open("file1","r")
>>> File2 = open("file2","r")
>>> Dict1 = File1.readlines()
>>> Dict2 = File2.readlines()
>>> print Dict1
['AAAAA\n', 'BBBBB\n', 'CCCCC\n']
>>> print Dict2
['AAAAA\n', 'BBBBB\n']
>>> DF = [ x for x in Dict1 if x not in Dict2 ]
>>> print DF
['CCCCC\n']
>>> print DF[0]
CCCCC

>>> print DF[0].rstrip()
CCCCC
Run Code Online (Sandbox Code Playgroud)


Cyr*_*rus 5

sort File1.txt File2.txt | uniq -u
Run Code Online (Sandbox Code Playgroud)