Войти

Показать полную графическую версию : [решено] поиск совпадений в файлах


shmel_sv@vk
24-10-2014, 15:48
доброго времени суток есть файлы sfv для проверки цельности файлов
иногда попадаются не совсем правильные файлы а именно
пример
1-bablablaa.rar 3ba66626
2-bablablaa.rar 2b4d5280
a.rar 2b4d5280
тоесть есть 2 совпадения
первые два файла существуют, третий нет и свидетельствует этому контрольная сумма (одинаковая)
мне надо чтоб искало (и создавало лог файл с полным путем этого неправильных .sfv) совпадения последних 8 символов в файлах, либо просто совпадения по второй колонке, так как разделитель пробел (наверно этот вариант легче)
файлов очень много и лежат они в субдиректориях

Iska
24-10-2014, 16:14
Что такое файлы sfv, откуда они берутся, как рассчитывается контрольная сумма?

shmel_sv@vk
24-10-2014, 17:39
sfv это файлы которые дежат контрольные суммы crc32
https://ru.wikipedia.org/wiki/SFV
они уже скачаны из интернета. и проверяются стороними приложениями
по большому счету это маленькие тхт файлы
в них заложена инфа. но инфа бывает некоректна и тогда мне показывает что контрольные суммы не совпадают
но поскольку как в предыдущем примере сумма одинаковая значит и файл тот же. но название файла неправильное, я потом вручную проверяю по названию должен ли быть там файл

Iska
24-10-2014, 18:22
shmel_sv@vk, как хотите, но всё одно непонятно. На конкретном примере попробуйте пояснить что ли…

shmel_sv@vk
24-10-2014, 22:30
наверно слишком много не нужной нифы написал
итак с самого начала и проще

есть текстовые файлы в которых нужно найти совпадения последних столбцов и вывести отчет

Georgio
24-10-2014, 22:47
@echo off

set "dir=D:\Test"
set "ext=.sfv"
set "log=list.log"

2>nul del "%log%"
pushd "%dir%"
for /f "delims=" %%i in ('"2>nul dir /a-d/b/s "*%ext%""') do call:sub "%%i"
popd

exit /b


:sub
for /f "usebackq delims=" %%i in (%1) do (
set x=%%i
call findstr /ec:" %%x:~-8%%" %1| find /c /v ""| >nul findstr /vx 1&& (
for /f "delims=" %%m in (%1) do >>"%~dp0%log%" echo %%m& exit /b
)
)

exit /b

mwz
24-10-2014, 22:51
первые два файла существуют, третий нет и свидетельствует этому контрольная сумма (одинаковая) »

Вы считаете что два совершенно разных файла не могут иметь одинаковую CRC32??
Про коллизии никогда не слышали?

shmel_sv@vk
25-10-2014, 02:58
Georgio, спасибо, но чегото не работало
за 2 часа смог запилить такой батник, путем проб и ошибок и гуглу

findstr /s /e "[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]" %CD%\*.sfv >all.sfv.txt
sed -r "s/.+ //g" all.sfv.txt | sort | uniq -d -i > dup.sfv.txt
@>>dupe2check.sfv.txt findstr /i /g:dup.sfv.txt all.sfv.txt


всем спасибо!




© OSzone.net 2001-2012