比较两个文件忽略顺序
Posted
技术标签:
【中文标题】比较两个文件忽略顺序【英文标题】:Compare two files ignoring order 【发布时间】:2012-05-29 07:32:18 【问题描述】:我有两个行序无关的文件,我想比较一下它的内容。
我查看了 diff
文档,但找不到像 --ignore-order
这样的东西。
有什么建议吗?
【问题讨论】:
在unix.stackexchange.com/questions/23303/…查看我的回答 【参考方案1】:先对文件进行排序:
$ sort file1 > file1.sorted
$ sort file2 | diff - file1.sorted
此外,虽然我个人不鼓励这种事情,但如果您使用 bash 并且在您的系统上启用了此功能,您可以通过使用进程替换来避免临时文件:
$ diff <(sort file1) <(sort file2)
【讨论】:
【参考方案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())
【讨论】:
【参考方案3】:也许您从错误的角度看待问题。也许您想对这两个文件进行排序然后比较它们?
否则,
diff file1 file2
会完全按照您的要求进行。
【讨论】:
以上是关于比较两个文件忽略顺序的主要内容,如果未能解决你的问题,请参考以下文章