LINUX.ORG.RU

Еще раз о сортировке

 


0

2

Приветствую всех!
Очередная проблема с большими файлами.
Есть папка со словарями 5-6G каждый, ну предположим 10 шт.
Нужно сравнить их на предмет повторяющихся строк и, естественно, убрать оные.
Я так понимаю, нужно сначала их разбить на более мелкие, а потом сравнивать.
Да, скорость обработки и потребляемые ресурсы - самые главные критерии.
Помогите пожалуйста!


Будем откровенны - у тебя 1 файл размером 60 гигабайт
Запускай sort и не парься

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

Тот пассажир так кстати и не отчитался, неблагодарный сучонак. Вот сиди теперь и гадай сколько там awk/perl отожрал на таких входных данных

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

Спасибо, смотрел.
perl и awk наглухо вешают комп.
LC_ALL=C sort -u --parallel=4 гораздо лучше, но ежели склеить все файлы, а потом сортировать, а потом опять разбивать файл. А вот если бы так:
берем файл 1 и вычитаем из него оставшиеся 9, в итоге можем работать с файлом 1.
Затем берем файл 2 и вычитаем из него 3-7 файлы, и т.д.

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

Будем откровенны - быстрее всего получилось бы отсортировать в памяти, но у тебя её столько нет, вот почему вариант с awk для тебя не вариант. Поэтому остаётся только вариант с разбиениями и хранением промежуточных результатов на диске.
Что и делает sort.

zolden ★★★★★
()

папка

Ну вот сколько можно издеваться, а?

Почитай про сортировку слиянием. Да и в любом случае, если сначала отсортировать куски, а потом собрать их воедино и снова отсортировать, шустрей будет.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Eddy_Em, прошу прощения, «каталог», я не знал, что «папка» Вам так слух режет, впредь буду аккуратнее.

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

Да не шибко я в программировании, вот и прошу помощи

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

берем файл 1 и вычитаем из него оставшиеся 9, в итоге можем работать с файлом 1.

fgrep -v -f

xtraeft ★★☆☆
()
Ответ на: комментарий от anonymous

тогда лучше посоветуй мне бросить заниматься фигней и не задавать вопросов. Но тогда тебе флудить негде бедет.

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

Это ж я к примеру сказал, да и sort 60G будет целый день крутиться.

Разве что на совсем допотопном железе. Если файлы в память не влезают и /tmp в ней же, то нужно не забыть про --temporary-directory у sort.

Сильно быстрее не выйдет.

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