У меня есть текстовый файл, который может содержать до 13 000 000 случайно сгенерированных кодов, разделенных с "\n" функцией fputcsv в php.

Каков наиболее эффективный способ удаления дубликатов из этого файла?

Спасибо!

1 ответ1

2

Я думаю, что проблема здесь в том, что в Excel есть ограничение в 1 048 576 строк, а в вашем наборе данных 13 миллионов записей. Каждая запись должна быть на отдельной строке.

Если вы работаете в Windows, вы можете использовать программу NotePad++ для поиска и удаления дубликатов. Ответ на StackOverflow предлагает использовать либо регулярное выражение, либо плагин.

Я бы использовал опцию регулярного выражения. Ниже приводится краткое резюме ответа SO.

  1. Убедитесь, что каждая запись в одной строке
  2. Откройте поиск и замените
  3. Выберите режим регулярного выражения
  4. Введите выражение ^(.*?)$\s+?^(?=.*^\1$) в поле поиска
  5. Оставьте запасную коробку пустой
  6. Нажмите Заменить все

Если эти данные являются экспортом из базы данных, вы можете подумать об изменении оператора SQL до экспорта, добавив DISTINCT после SELECT . Смотрите здесь для примера.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .