Если вы перейдете к опции python, как предложено Jacob Vlijm, стоит использовать «set» (дополнительную информацию см. на странице https://docs.python.org/3/library/stdtypes.html#set-types -set-frozenset). В принципе, как только вы создали два набора, вы можете достичь заданной математики (объединение, пересечение, разность и т. Д.). В этом случае заданная разность - это именно то, что вам нужно: новый набор со всеми элементами, которые находятся в одном наборе и а не в другом. Тогда код из Джейкоба будет:
#!/usr/bin/env python3
import sys
f1 = sys.argv[1]; f2 = sys.argv[2]
def read_set(f):
with open(f) as content:
return set(content.read().split())
for item in read_set(f1) - read_set(f2)]:
print(item)
Конечно, для миллиардов записей это займет некоторое время ... `