[Comm] удалить одинаковые строки из разных файлов

Denis Kirienko =?iso-8859-1?q?dk=5Ffor=5Flists_=CE=C1_lmsh=2Eedu=2Eru?=
Вт Май 3 16:42:40 MSD 2005


Получил Tue, 3 May 2005 16:26:52 +0400 от Roman V. Tutov следующее
письмо:

> Мне стыдно задавать такой вопрос ...но что-то я своим умом не дохожу
> 
> Есть 2 файла . Больших . В них есть одинаковые строки . Их нужно
> удалить .

Штатными средствами, похоже, что никак. Надо программу писать.
Хотя не исключаю, что здесь найдутся специалисты, которые смогут это
сварганить на bash+gnu tools. Ну, например, бежим циклом по строкам
одного файла, грепим второй файл на предмет наличия этой строки, в
зависимости от результата выводим или нет строку в новый файл.

Такое тупое решение будет работать за n*m действий, где n и m -
количество строк в файлах. Более продвинутое (сначала отсортировать
строки, затем бежим по одному файлу и ищем эту строку в другом файле
бинарным поиском)- за (n+m)(log n + log m) действий. Так что,
возможно, если файлы большие - то имеет смысл и самому написать.

--
Денис




Подробная информация о списке рассылки community