У меня есть два больших файла (наборы имен файлов). Примерно 30.000 строк в каждом файле. Я пытаюсь найти быстрый способ нахождения строк в файле1, которых нет в файле2.
Например, если это файл1:
line1
line2
line3
И это файл2:
line1
line4
line5
Тогда мой результат/результат должен быть:
line2
line3
Это работает:
grep -v -f file2 file1
Но это очень, очень медленно при использовании в моих больших файлах.
Я подозреваю, что есть хороший способ сделать это с помощью diff(), но вывод должен быть только строками, ничего больше, и я не могу найти для этого переключатель.
Может ли кто-нибудь помочь мне найти быстрый способ сделать это, используя bash и базовые файлы linux?
EDIT: чтобы следить за своим вопросом, это лучший способ, который я нашел до сих пор, используя diff():
diff file2 file1 | grep '^>' | sed 's/^>\ //'
Конечно, должен быть лучший способ?