Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 29.08.2019
Сообщений: 4

Поиск совпадений массива в самом себе

29.08.2019, 20:31. Показов 6030. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, изначально я просто хотел сравнивать тыыыщу текстовых документов по хэшу и выводить совпадения, но время шло и в очередной раз излазив весь инет я понял что вроде-как это анрил?!! Мой вопрос как сделать часть скрипта которая будет брать первую строку из массива и сравнивать со всеми остальными а когда цикл завершен брать вторую свою строку и так же прогонять на совпадения , и так хоть овер100500 строк !??

Массив выглядит примерно так :

Algorithm Hash Path
--------- ---- ----
MD5 96E79218965EB72C92A549DD5A330112 C:\Users\public\10.txt
MD5 7FB1F7D9669342EDD37786A5578F91C9 C:\Users\public\11 — копия.txt
MD5 7FB1F7D9669342EDD37786A5578F91C9 C:\Users\public\11.txt
MD5 E3CEB5881A0A1FDAAD01296D7554868D C:\Users\public\2.txt
MD5 7FB1F7D9669342EDD37786A5578F91C9 C:\Users\public\3.txt
MD5 96E79218965EB72C92A549DD5A330112 C:\Users\public\55.txt
MD5 56BC580EE499E52405CD9CEB17F72CE5 C:\Users\public\77.txt
MD5 FD8F4787AFC3391ECABD104E277B93A4 C:\Users\public\ee.txt
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.08.2019, 20:31
Ответы с готовыми решениями:

Поиск совпадений в значениях массива
$array = ; $search = 'v2'; print_r $values; Как сделать так, что б в, к примеру, массиве $values были '12a' и '23c'. То есть...

Поиск совпадений и действия в зависимости от наличия совпадений
Попытаюсь вкратце описать суть. Приходит список позиций с ценами. Необходимо проверить артикул на наличие совпадений с базой и 1) Если...

Нарисовать hBitMap на самом себе
...со сдвигом. Почему-то не выходит. Не поделитесь кодом? Что-то мне подсказывает, что hBitMap на самом себе не нарисуется. Зачем мне...

7
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
29.08.2019, 22:15
Ежели вам не жаль системные ресурсы, можно конечно перебирать все построчно, однако покумекав трошки детальней, вы заметите одну простую вещь: опорой в сравнении строк является сама контрольная сумма файла, а сравнение 'MD5' с 'MD5', если конечно не задан регистрозависимый режим, лишено логики, так как всегда будет истинно.
Сам массив, нужно полагать, вы получаете из CSV файла, так? Можно просто группировать контрольные суммы, например:
PowerShell
1
(Get-Content C:\Path\file.csv | ConvertFrom-Csv | Group-Object Hash).Where{$_.Count -gt 1}
А далее просто разбираете полученные группы.
Что касается "овердопупа"... При попытке обойти такой файл предложенным вами методом можно схлопотать как переполнение кучи, так и просто аварийное завершение хоста, по этой причине большие по объему файлы лучше разбирать как БД, скажем, с помощью SQLite.
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
30.08.2019, 07:02
для БД это тривиальная задача, если подобные задачи возникают не единично? то можно и заморочиться, Oracle XE + SQL*Loader например, у мелокмяких в SQL Server express есть графический мастер импорта
0
0 / 0 / 0
Регистрация: 29.08.2019
Сообщений: 4
31.08.2019, 16:38  [ТС]
Уважаемый участник форума, честно,я не совсем вас понял ,ответ на ваш вопрос про csv - нет это не из файла а результат выполнения комманды допустим
cd c://users/public
get-filehash "*.txt" -algorithm md5 и получается то что я скинул в первом посте, я попробовал выгрузил результат в csv файл что бы попробовать вашу комманду но вывод какой то совсем странный, кажется вы хотели убрать из массива "md5" я делал это таким способом - get-filehash "*.txt" -algorithm md5 | Select-Object path,hash
а вот сам вывод :


Path Hash
---- ----
C:\Users\public\10.txt 96E79218965EB72C92A549DD5A330112
C:\Users\public\11 — копия.txt 7FB1F7D9669342EDD37786A5578F91C9
C:\Users\public\11.txt 7FB1F7D9669342EDD37786A5578F91C9
C:\Users\public\2.txt E3CEB5881A0A1FDAAD01296D7554868D
C:\Users\public\3.txt 7FB1F7D9669342EDD37786A5578F91C9
C:\Users\public\55.txt 96E79218965EB72C92A549DD5A330112
C:\Users\public\77.txt 56BC580EE499E52405CD9CEB17F72CE5
C:\Users\public\ee.txt FD8F4787AFC3391ECABD104E277B93A4
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
31.08.2019, 17:07
Лучший ответ Сообщение было отмечено 4spec7 как решение

Решение

Не менее уважаемый автор темы, четко и внятно поставленный вопрос сам по себе уже является половиной ответа.
PowerShell
1
(Get-FileHash *.txt | Group-Object Hash).Where{$_.Count -gt 1}
Получим сгруппированные по хэшам (более одного совпадения) значения.
1
0 / 0 / 0
Регистрация: 29.08.2019
Сообщений: 4
04.09.2019, 13:31  [ТС]
Хмм.. очень не плохая попытка, знаете я когда читал книгу Попова вот прям чувствовал что решением должен быть скрипт именно такого плана но почему то нет вывода... Скрипт отрабатывает, никаких ошибок и просто пусто .Так же как допустим нельзя сравнить вручную по строчно из переменной , представьте что тот массив я кинул в переменную! compare-object $a[1] $a[2] в этом случае вывода тоже нет
0
210 / 59 / 26
Регистрация: 16.06.2016
Сообщений: 193
05.09.2019, 09:18
4spec7, Вы задали свой путь для txt-файлов ? Вместо Get-FileHash *.txt --> Get-FileHash C:\Users\public\*.txt

у меня отлично отработал скрипт.
0
0 / 0 / 0
Регистрация: 29.08.2019
Сообщений: 4
05.09.2019, 13:28  [ТС]
и правда работает.. странно что в прошлый раз не получилось ведь в истории тот же самый скрипт. Впрочем не важно) кибер спасибон Грегу и всем остальным^^
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.09.2019, 13:28
Помогаю со студенческими работами здесь

Поиск совпадений
Перевожу рандомные числа в двоичную систему. Помогите определить в каких элементах находится более двух цепочек "1100". ...

Поиск совпадений
Привет, помогите пожалуйста, как организовать поиск по бд(Acces), чтобы было сообщение, что такой логин уже существует, придумайте новый. ...

Поиск совпадений
Здравствуйте, уважаемые программисты! Помогите решить такую задачку: Есть одинаковое количество мужчин и женщин. У каждой женщины...

Поиск совпадений
Всем привет!) Меня интересует вот какой вопрос)) Существует два сайта источника, и 1 сайт поиска Алгоритм такой. 2 сайта...

Поиск совпадений
Здравствуйте. Ищу плагин для wordpress (ибо кодить не умею, но если скажете, что и куда писать, буду вам невероятно благодарен), который...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru