Если они отсортированы и разделены символами новой строки, вы можете использовать comm показать строки, которые уникальны для файла1:
comm -23 file1 file2
Демонстрация:
$ comm -23 <(echo -e 'john\nmike\nanna\npaul\nlaura'|sort) <(echo -e 'john\nmike\npaul'|sort)
anna
laura
Или вы могли бы diff сделать то же самое (grep ищет удаление строк):
diff sorted-file-1 sorted-file-2 | grep -oP '(?<=< ).+'
Если вам нужно избегать сортировки или вы имеете дело с серьезными цифрами , Я бы перешел на правильный язык для поиска на основе словаря. Простой пример python:
file2 = {}
with open("file2") as f:
for line in f:
file2[line] = 0
with open("file1") as f:
for line in f:
if not line in file2:
print line
Все, что больше, и вы можете посмотреть фактическую базу данных и некоторый простой SQL. Они предназначены для больших данных.