Как сопоставить 2 больших файла и распечатать разницу в сценарии оболочки

У меня есть 2 файла.

Файл1 содержит 400 тыс. Цифровых записей. например:

1 2 3 4 5 6 .. 

и так далее

Файл 2 также имеет числовые записи 420 тыс. например:

 1 2 3 4 6 .. 

и так далее

Оба этих файла находятся в несортированном виде. Я хочу сопоставить 2 файла и распечатать разницу.

Когда я пытаюсь использовать diff , comm или grep это занимает много времени (более часа). Для меня это невозможно.

Как я могу сделать это быстрее (сопоставление и печать разницы).

Я использую HP -UX.

One Solution collect form web for “Как сопоставить 2 больших файла и распечатать разницу в сценарии оболочки”

В файле с 10 миллионами строк, сгенерированным с помощью:

 seq 10000000 | tee a | awk 'rand() < 0.05 {print int(1000000 * rand())}; 1' > b 

все:

 diff ab | wc -l comm -3 <(sort a) <(sort b) | wc -l 

(синтаксис ksh / bash / zsh)

 cmp -lab | wc -l 

Занимал менее 30 секунд на 3-летнем ПК с низким уровнем доступа (работает под управлением Linux).

Могут быть большие различия с diff зависимости от содержимого, поскольку алгоритм diff , который должен обнаруживать вставки, удаления или изменения, будет зависеть от того, как данные будут изложены, но не было бы так много изменений с другими.

Что именно вы пробовали?

  • Попытка сортировать два списка чисел и использовать uniq для получения пересечения
  • Удаление строк с одним общим полем
  • Где исчезла моя строка `uniq` или` sort -u`, с некоторыми символами юникода
  • Проверьте, был ли диск с нулевым значением с xxd и uniq?
  • Как let `sort | uniq -c` отделяет количество вхождений с помощью табулятора?
  • Печать дубликатов строк на основе первого столбца
  • Считайте уникальные строки только для заданного шаблона
  • Учет уникальных пользователей в файле wtmp
  • Мне нужны данные из файла csv, которого нет во втором файле csv
  • Unix - подсчет уникальных IP-адресов, сортировка их по частоте и сортировка по IP, когда количество повторений одинаково
  • сортировать и uniq в awk
  • Linux и Unix - лучшая ОС в мире.