我有两个文件,它们的行顺序无关紧要,我想比较它们的内容。
我查看了diff
文档,但没有找到像--ignore-order
这样的东西。
有什么提示吗?
首先对文件进行排序:
$ sort file1 > file1.sorted
$ sort file2 | diff - file1.sorted
此外,虽然我个人不鼓励这样做,但如果你在使用bash并且该功能已在系统上启用,你可以通过使用进程替换来避免临时文件:
$ diff <(sort file1) <(sort file2)
不使用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())
diff file1 file2
会完全按照您的要求执行。