LINUX.ORG.RU

Сравнение данных на совпадение

 , , ,


0

1

Привет, всем.

Подскажите как быть. Есть два файла, с данными. В одном 10 000 строк в другом 800 000. Задача, надо найти совпадения и вывести список.

Каким способом это быстро можно сделать. У меня тут идея, вогнать это в mysql в две таблици и с помощью php сделать новый список.

Второй вариант с помощью bash скрипта создать массив и перебрать его, но думаю это будет очень долго ....


если много памяти то самый простой вариант
grep -f 10000.txt 800000.txt

zolden ★★★★★
()
Ответ на: комментарий от Suntechnic

Не проще было просто попробовать? Мона.

У меня тут 1с-ник попробовал, на целую ночь сервер 1C завис так и не сделал сравнение и замену ;(

macik
() автор топика
Ответ на: комментарий от macik

Господи, ну прибил бы процесс... Запусти в отдельной консоли и убей через Alt+SysRq+K, если боишься что вообще терминал повиснет.

Suntechnic ★★★★★
()

эта, diff, comm etc

IPR ★★★★★
()
Ответ на: комментарий от macik

я про греп ничего не говорил, я говорил про vimdiff, ну или gvimdiff, дело вкуса

800 000 txt файл 86 мег

это для вима семечки

q11q11 ★★★★★
()
Ответ на: комментарий от kostik87
sort file1 > file1_sorted
sort file2 > file2_sorted
comm -12 file1_sorted file2_sorted > file3

Супер!

Проверил, все делалось 10, 15 секунд.

Огромное спасибо.

macik
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.