Как сопоставить 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 , который должен обнаруживать вставки, удаления или изменения, будет зависеть от того, как данные будут изложены, но не было бы так много изменений с другими.

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

  • печатать дубликаты строк только в полях 1,2 из файла csv
  • сортировать и uniq столбцы отдельно в текстовом файле
  • Как let `sort | uniq -c` отделяет количество вхождений с помощью табулятора?
  • Найти дубликаты по столбцу в файле
  • Самый простой способ подсчета строк, соответствующих определенным шаблонам, включая «0», если строка не найдена?
  • `uniq` не в режиме реального времени, когда
  • «Подсчитайте, сколько разных начальных букв написано в именах языков»
  • Эффективное объединение / сортировка / уникальное большое количество текстовых файлов
  • Unix - подсчет уникальных IP-адресов, сортировка их по частоте и сортировка по IP, когда количество повторений одинаково
  • Как получить только уникальные результаты без сортировки данных?
  • Печать строк журнала, исключая ранее повторяющиеся строки?
  • Linux и Unix - лучшая ОС в мире.