29

我有两个行的顺序无关的文件,我想比较它的内容。

我查看了diff文档,但找不到类似--ignore-order.

有小费吗?

4

3 回答 3

59

首先对文件进行排序:

$ sort file1 > file1.sorted
$ sort file2 | diff - file1.sorted

此外,虽然我个人不鼓励这种事情,但如果您使用 bash 并且在您的系统上启用了此功能,您可以通过使用进程替换来避免临时文件:

$ diff <(sort file1) <(sort file2)
于 2012-05-22T18:59:53.830 回答
2

不是 bash,但仍然是使用 python 的快速方法:

def check_diff(file1,file2):
    check = {}
    for file in [file1,file2]:
        with open(file,'r') as f:
            check[file] = []
            for line in f:
                check[file].append(line)
    diff = set(check[file1]) - set(check[file2])
    for line in diff:
        print(line.rstrip())
于 2018-06-15T13:29:22.533 回答
1

也许你从错误的角度看待问题。也许您想对这两个文件进行排序然后比较它们?

除此以外,

diff file1 file2 

会完全按照您的要求进行。

于 2012-05-22T19:01:26.537 回答