行の順序が関係ない 2 つのファイルがあり、その内容を比較したいと考えています。
ドキュメントを調べまし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
あなたが求めていることを正確に行います。