Имя пользователя:
Пароль:
 | Правила  

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

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

Ветеран


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

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


здравствуйте, реально ли осуществить вот такую задачку..

я хочу найти все файлы, в которых присутствуют энной или более кол-во одинаковых символов, т.е. я должен указать только цифру, например 5.
а мне должны показаться (или в тхт или на экране, без разницы как), группы файлов в имени которых (не считая расширения) присутствует части слова из 5 или более одинаковых символов. А также, чтобы можно было указать слова для игнора (которые при нахождении в нескольких файлах не будут поводом принимать их за дубликаты, если таковые найдутся)
пример у меня в папке куча папов.. в этих папках кучи файлов
для примера возьму не множко:

mydomain.com_хорошее кино.avi
mydomain.com_хорошая комедия.wmv
mydomain.com_камедиклаб.avi
mydomain.com_сигареты камел.avi
mydomain.com_стивен сигал.wmv

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

указываю количество символов 5 и более, указываю в списке игноров всего одно слово "mydomain.com_".
такие должны быть результаты:

хорошее кино.avi
хорошая комедия.wmv

если задал 4 и более, а слово игнор "mydomain.com_", результаты в виде группы

хорошее кино.avi
хорошая комедия.wmv
----------------------------------------------------
сигареты камел.avi
стивен сигал.wmv

если задал 3 и более, а слово игнор "mydomain.com_":

хорошее кино.avi
хорошая комедия.wmv
----------------------------------------------------
сигареты камел.avi
стивен сигал.wmv
-----------------------------------------------------
хорошая комедия.wmv
камедиклаб.avi
----------------------------------------------------
камедиклаб.avi
сигареты камел.avi

Если можно сделать проще посредством каких - то программ, подскажите, пожалуйста каких именно, в тотале коммандере, есть поиск посредством плагина, может существует такой плагин

Отправлено: 16:05, 28-03-2015

 

Ветеран


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

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


Alexander_88, Можно:
Код: Выделить весь код
$notparse = '\d{5}|.+rufig_'
'\d{5}' -- пять цифр
'|' -- логическое 'или'
'.+rufig_' -- один или более символов перед rufig_
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:03, 29-03-2015 | #11



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

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


Аватара для yurfed

Ветеран


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

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


Alexander_88, если использование скриптов не принципиально, посмотрите в сторону Everything. Пожалуй на сегодня это самый быстрый поиск, удовлетворяющий вашим критериям.
http://www.voidtools.com/Everything-1.3.0.632b.exe

-------
Хочу ли я - Могу ли я - Говно ли я - Магнолия


Отправлено: 14:25, 29-03-2015 | #12


Ветеран


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

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


Цитата Foreigner:
'\d{5}' -- пять цифр
'|' -- логическое 'или'
'.+rufig_' -- один или более символов перед rufig_ »
сейчас, все как нужно, лишнего нету.. благодарю


yurfed интересно, а где можно количесво символов там настроить?
я прочитал справку

Код: Выделить весь код
Функции:
	attrib:<атрибуты>	Найти файлы и папки с указанными файловыми атрибутами
	attributes:<атрибуты>	Найти файлы и папки с указанными файловыми атрибутами
	child:<имя_файла>	Найти папки, содержащие файл с подходящим именем
	dateaccessed:<дата>	Найти файлы и папки с указанной датой последнего доступа
	datecreated:<дата>	Найти файлы и папки с указанной датой создания
	datemodified:<дата>	Найти файлы и папки с указанной датой изменения
	daterun:<дата>	Найти файлы и папки с указанной датой запуска
	da:<дата>	Найти файлы и папки с указанной датой последнего доступа
	dc:<дата>	Найти файлы и папки с указанной датой создания
	dm:<дата>	Найти файлы и папки с указанной датой изменения
	dr:<дата>	Найти файлы и папки с указанной датой запуска
	dupe:	Найти дублирующиеся имена файлов
	empty:	Найти пустые папки
	ext:<список>	Найти файлы с подходящим расширением из указанного списка расширений, разделённых точкой с запятой (;)
	fsi:<индекс>	Найти файлы и папки в указанном внутреннем индексе файловой системы с базой 0
	len:<длина>	Найти файлы и папки с именами указанной длины
	parents:<кол-во>	Найти файлы и папки с указанным количеством родительских папок
	rc:<дата>	Найти файлы и папки с указанной датой последнего изменения
	recentchange:<дата>	Найти файлы и папки с указанной датой последнего изменения
	root:	Найти файлы и папки, не имеющие родительских папок
	runcount:<число>	Найти файлы и папки, запущенные указанное количество раз
	size:<размер>	Найти файлы указанного размера (в байтах)
	type:<тип>	Найти файлы и папки указанного типа
не нашел там, что то типа "найти файлы в которых сходятся энное кол-во символов"

Отправлено: 15:31, 29-03-2015 | #13


Ветеран


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

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


не подскажете, что нужно прописать в конец, чтобы открыть этот финальный файл тхт в блокноте, ищу в гугле как открыть тхт, вроде не сложно должно быть, и нигде не могу найти

Отправлено: 20:43, 29-03-2015 | #14


Ветеран


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

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


Alexander_88, Уберите команду return и добавьте в конце:
Код: Выделить весь код
return & {

....

}} | set-content "D:\Test\result.txt"

invoke-item "D:\Test\result.txt"

Отправлено: 21:34, 29-03-2015 | #15


Ветеран


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

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


а я вот этим вариантом пользовался

Код: Выделить весь код
$notparse = 'mydomain.com_|mydomain.org_|www.ya.ru_|\[игнор\]' # Если присутствуют'[' и ']', то их надо экранировать '\[' и '\]' 
$search_len = 7
$files = get-childitem .\test -recurse | where { -not $_.psiscontainer }

$patterns = foreach ($f in $files) {
    
    $f = $f.basename -replace $notparse
    for ($i = 0; $i -le ($f.length - $search_len); $i++) {

        $f.substring($i,$search_len) -replace '(\[|\])','\$1'
        
}}

return & {

foreach ($p in ($patterns | sort -unique)) {

    $res = $files | where { ($_.basename -replace $notparse) -match ".*${p}.*" } | foreach { "[${p}]: " + "$_" }
    if ($res.count -ge 2) { $res -replace '\\'; '' }
        
}} | sc 1.txt


сделал вот так , но не получается что - то

Код: Выделить весь код
$notparse = 'mydomain.com_|mydomain.org_|www.ya.ru_|\[игнор\]' # Если присутствуют'[' и ']', то их надо экранировать '\[' и '\]' 
$search_len = 7
$files = get-childitem .\test -recurse | where { -not $_.psiscontainer }

$patterns = foreach ($f in $files) {
    
    $f = $f.basename -replace $notparse
    for ($i = 0; $i -le ($f.length - $search_len); $i++) {

        $f.substring($i,$search_len) -replace '(\[|\])','\$1'
        
}}

 {

foreach ($p in ($patterns | sort -unique)) {

    $res = $files | where { ($_.basename -replace $notparse) -match ".*${p}.*" } | foreach { "[${p}]: " + "$_" }
    if ($res.count -ge 2) { $res -replace '\\'; '' }
        
}} | sc 1.txt
invoke-item 1.txt

Отправлено: 22:06, 29-03-2015 | #16


Ветеран


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

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


Alexander_88, вы забыли '&', который был после return
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:29, 30-03-2015 | #17


Ветеран


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

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


спасибо, получилось

Отправлено: 01:19, 30-03-2015 | #18



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочие - не стандартный поиск дубликатов файлов Alexander_88 Программное обеспечение Windows 7 28-03-2015 15:45
CMD/BAT - Удаление дубликатов. evgon Скриптовые языки администрирования Windows 11 18-09-2014 21:10
Поймал необычный вирус microon Лечение систем от вредоносных программ 14 20-12-2012 13:06
Любой язык - [решено] Поиск дубликатов Baranius Скриптовые языки администрирования Windows 14 07-06-2012 12:22
Hare (необычный твикер) Ser6720 Программное обеспечение Windows 7 15-04-2006 01:38




 
Переход