Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Поиск уникальных значений по файлу (http://forum.oszone.net/showthread.php?t=221159)

Sat_Kelman 22-11-2011 10:56 1800548

Поиск уникальных значений по файлу
 
Добрый день!

Есть текстовый файл List.txt примерно на 100 000 строк, примерно следующего содержания
XR001.sdf
XR001.fgft
XR001.sdfsdf
DR01.sdf
DR01.fgtr
C0R1.fgtr
......
Шаблон такой что идет идентификатор, например XR001 потом точка и потом сможет быть что угодно, но важен только идентификатор
Нужно посчитать количество уникальных значений перед точкой.
Понимаю что нужно смотреть с сторону for /f "tokens=1* delims=." %%i in (List.txt) do, но что-то не могу понять как дальше выцепить и посчитать.
Нужно только количество, подскажите пожалуйста!

gora 22-11-2011 11:48 1800583

Цитата:

Цитата Sat_Kelman
посчитать количество уникальных значений »

Код:

@Echo Off
For /f "tokens=1* delims=." %%i In (List.txt) Do Set zzzzzzzz%%i=%%i
For /f %%i In ('Set zzzzzzzz') Do Set /A cnt += 1
Echo %cnt%
Pause>Nul


Iska 22-11-2011 12:12 1800605

Sat_Kelman, наиболее просто задача решается при помощи Log Parser (Download: Log Parser 2.2 - Microsoft Download Center - Download Details):
Код:

"C:\Program Files\Log Parser 2.2\LogParser.exe" "SELECT EXTRACT_TOKEN(Text, 0, '.') AS Name, COUNT(Name) FROM 'E:\Песочница\0092\List.txt' GROUP BY Name ORDER BY Name Desc" -i:TEXTLINE
На предложенном Вами образце файла List.txt :
Код:

XR001.sdf
XR001.fgft
XR001.sdfsdf
DR01.sdf
DR01.fgtr
C0R1.fgtr

получаем следующие результаты:
Цитата:

Код:

Name  COUNT(ALL Name)
----- ---------------
XR001 3
DR01  2
C0R1  1

Statistics:
-----------
Elements processed: 6
Elements output:    3
Execution time:    0.02 seconds




Время: 11:08.

Время: 11:08.
© OSzone.net 2001-