File 1: 1356775 lines
File 2: 9516 lines
Файл 2 содержит строки чисел, которые при сопоставлении в файле 1 должны быть удалены из этого файла.
Пример:
Файл 1
34234323432 some useless stuff
23423432342 more useless stuff
98989898329 foo bar blah
65367389473 one two three
Файл 2
234234323
653673894
Новый файл
34234323432 some useless stuff
98989898329 foo bar blah
Мой подход сейчас к
- Считать весь файл file2 в массив
- Получить первую строку из File1 и извлечь первые 8 чисел
- Выполните цикл по всему массиву с шага 1, чтобы увидеть, совпадают ли 8 чисел с шага 1
- Если числа не совпадают, записать строку из шага 1 в новый файл
- Если они совпадают, выходить из цикла и не записывать строку в новый файл
- продолжайте, пока больше не будет строк для чтения из шага 2
Однако, поскольку файл очень большой, это занимает огромное количество времени, поскольку для каждой строки в файле1 мы перебираем весь массив (9516 элементов). Есть ли более простой способ сделать этот тип манипулирования файлами, не помещая записи из файла в таблицу БД.