URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5058
[ Назад ]

Исходное сообщение
"Вопрос по хешам"

Отправлено Onix , 17-Янв-06 21:19 
Всем привет
Есть хеш, %file где ключем является имя файла, а значением: его контрольная сумма
Как можно получить все имена файлов, у которых контрольная сумма совпадает?

Содержание

Сообщения в этом обсуждении
"Вопрос по хешам"
Отправлено gr , 18-Янв-06 01:49 
>Всем привет
>Есть хеш, %file где ключем является имя файла, а значением: его контрольная
>сумма
>Как можно получить все имена файлов, у которых контрольная сумма совпадает?


reverse %file


"Вопрос по хешам"
Отправлено gr , 18-Янв-06 01:55 
>>Всем привет
>>Есть хеш, %file где ключем является имя файла, а значением: его контрольная
>>сумма
>>Как можно получить все имена файлов, у которых контрольная сумма совпадает?
>
>
>reverse %file


невнимательно прочел, извиняюсь

for (keys %file) {
%res{$file{$_}} .= " $_";
}

print values %res;


"Вопрос по хешам"
Отправлено ACCA , 19-Янв-06 12:41 
>Всем привет
>Есть хеш, %file где ключем является имя файла, а значением: его контрольная
>сумма
>Как можно получить все имена файлов, у которых контрольная сумма совпадает?

Я бы задачу стал решать по-иному - свалил бы в файл имена+контрольные суммы, потом

sort -k 2 files.lst > sorted.files.lst
uniq -f 1 -d sorted.files.lst

причём именно так - с промежуточным файлом, да ещё и контрольные суммы считал бы раздельно по каждому подкаталогу, а потом собрал в один файл.

Дерево с 3млн. файлов сложно обработать иначе.