Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Поиск дубликатов

Ответить
Настройки темы
Любой язык - [решено] Поиск дубликатов

Аватара для Baranius

Новый участник


Сообщения: 23
Благодарности: 0

Профиль | Отправить PM | Цитировать


Привет, всем.
Вот упрощённый вид задачи: в списке из ~10 000 строк (6,7-значные числа) найти повторяющиеся значения - дубликаты.
Решаема ли такая задача силами CMD\BAT, VBS скриптов или это уже из сферы БД, Excel-я?

Отправлено: 14:29, 03-06-2012

 

Аватара для Baranius

Новый участник


Сообщения: 23
Благодарности: 0

Профиль | Отправить PM | Цитировать


Anonymоus! Безупречно.
Не только я, все пользователи AIMPa, будут благодарны Вам. Это ж сколько дискового пространства у каждого освободится! А в мировом масштабе? (скрипт использует уникальные свойства плейлиста AIMPa, для поиска дубликатов. Интересно - стучитесь).
Последние вопросы:
- нет ли ограничений на количество строк в файле "test.txt", ну, или его веса?
- нельзя ли вместо черного окна cmd.exe увидеть уставшее, но доброе лицо Anonymоusа, и вместо привычного текста "Нажмите.." прочитать "Налейте...", да, и ещё
- мы все можем пользоваться Вашим скриптом? (можно подумать, что это кого-то остановит. И всё же)
Спасибо!

Отправлено: 00:34, 06-06-2012 | #11



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 415
Благодарности: 257

Профиль | Отправить PM | Цитировать


Цитата Baranius:
- нет ли ограничений на количество строк в файле "test.txt", ну, или его веса? »
Только по времени - чем больше список, тем медленней отрабатывает Find (каждую строку ищёт по всему файлу). Думаю, где-то до двухсот тысяч строк не должно возникать никаких затруднений. Если нужно обрабатывать очень большие списки, могу переделать скрипт с использование grep вместо find, он намного быстрее работает, но минус в том, что это стороняя утилита и по умолчанию отсутствует в windows.

Отправлено: 01:45, 06-06-2012 | #12


Аватара для Baranius

Новый участник


Сообщения: 23
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: jpg _кол-во дублей.jpg
(147.7 Kb, 13 просмотров)
Тип файла: jpg _процессы.jpg
(111.5 Kb, 12 просмотров)
Тип файла: jpg _dup-203сек.jpg
(273.6 Kb, 14 просмотров)

Anonymоus, может Вам будут интересны результаты тестирования.
Собрал на старой машине (Barton 1,8 Мгц, память - 1Гб) ~15 000 файлов (70Гб весом). Из плейлиста подготовил "test.txt " - запустил Ваш скрипт поиска дублей. Комп загрузился на 100%, (процессы.jpg) и работал он ... 1час 40 минут. Стресс-тест, как говорится, но результат выдал.
И вот первый вывод: кол-во песен с равной до миллисекунды длительностью (судя по весу файла "! duplicated (1ч 40м) весь - 15 000.txt") почти равно половине всех песен (вторая строчка на скриншоте _кол-во дублей.jpg ). Не поверил, взял первую 1 000 строк из "test.txt ", потом первые 3 000, следом ещё 3 000 строк из середины файла (там, где длина песен "L=226s" самая распространённая) - результат тот же и неутешительный для меня - слишком много совпадений и искать именно дубли одинаковых песен среди такого кол-ва совпадений будет некомфортно. Так и вышло. Вот скрин (_dup-203сек.jpg) совпадений песен в диапазоне только одной секунды 203000 - 203999мс (3:23). Из 53 штук только 2 пары дублей (желтенькие).
Выводы - одного поля для сравнения, а тем более, поиска дубликатов мало (нужно чем-то подпирать, хоть тем же размером);
- время обработки растёт не пропорционально кол-ву обрабатываемых строк, очевидно Find не отбрасывает из рассмотрения 1 строку, после того, как переходит ко второй и т.д.;
- нашлись и неточности, присущие Find, о которых Вы говорили ранее - несколько сотен почему-то именно коротких файлов (L- 5тизначное) с цифрами в пути.
А про тесты синхронизации старого ПЛ с упорядочненными файлами на диске (умный поиск-сравнение в списках) отпишусь в родной теме.
Ещё раз, спасибо за поддержку и понимание.

Отправлено: 00:12, 07-06-2012 | #13


Старожил


Сообщения: 415
Благодарности: 257

Профиль | Отправить PM | Цитировать


Да, результаты интересные. Выходит, сочетание идентификации по длительности, плюс ошибки самого алгоритма поиска явно не дают требуемой точности. Сравнение одновременно с длительностью ещё и по размеру - это не совсем адекватная задача для чистого cmd, без применения внешних утилит, не тот инструмент.

Цитата Baranius:
- время обработки растёт не пропорционально кол-ву обрабатываемых строк, очевидно Find не отбрасывает из рассмотрения 1 строку, после того, как переходит ко второй и т.д.; »
Так и есть, не отбрасывает. Каждая строка ищется по всему файлу каждый раз.

Увы, по итогам выходит, что практического применения данный скрипт не имеет.

Отправлено: 03:03, 07-06-2012 | #14


Аватара для Baranius

Новый участник


Сообщения: 23
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Anonymоus:
Увы, по итогам выходит, что практического применения данный скрипт не имеет. »
Неправда, Вы взгляните на благодарности. Уже кому-то это решение показалось полезным. И, наверняка найдется куча задач, где Ваш скрипт очень пригодится (отчет-сводка за день, неделю). Я же, например, с удовольствием теперь анализирую свою фонотеку по частям (у меня папки 2002, 2003...сейчас уже 2012). И работать мне с полученными данными прямо в AIMPe (см. выше-_dup-203сек.jpg) очень удобно, хотя есть куча программ для поиска дубликатов.
Спасибо!

Отправлено: 12:22, 07-06-2012 | #15



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Поиск дубликатов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Программы для поиска и удаления дубликатов файлов Alex Cop Программное обеспечение Windows 61 07-01-2018 12:00
Графика - [addons] Программы для поиска дубликатов изображений pahan22 Наборы обновлений для Windows XP/2003/Windows 7 7 12-04-2011 19:52
CMD/BAT - Удаление дубликатов при копировании Seryoga204 Скриптовые языки администрирования Windows 1 22-08-2010 17:01
Ищу программу для поиска файлов дубликатов VbInt Хочу все знать 10 20-10-2009 10:54
Чем можно воспользоваться для поиска дубликатов файлов. Igor_I Программное обеспечение Linux и FreeBSD 13 06-10-2008 21:19




 
Переход