我有两个文件,其中行的顺序无关紧要,我想比较它的内容。
我查看了diff
文档,但找不到类似--ignore-order
的内容。
任何提示?
答案 0 :(得分:39)
首先对文件进行排序:
$ sort file1 > file1.sorted
$ sort file2 | diff - file1.sorted
此外,虽然我个人不鼓励这种事情,但如果你使用bash并且在你的系统上启用了这个功能,你可以通过使用进程替换来避免临时文件:
$ diff <(sort file1) <(sort file2)
答案 1 :(得分:1)
也许你从错误的一面看问题。也许您想对两个文件进行排序然后进行比较?
否则,
diff file1 file2
会完全满足您的要求。
答案 2 :(得分:0)
不是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())