CMD/BAT - [решено] Поиск уникальных значений по файлу

Ответить
Аватара пользователя
Sat_Kelman

CMD/BAT - [решено] Поиск уникальных значений по файлу

Сообщение Sat_Kelman »

Добрый день!



Есть текстовый файл 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

Re: CMD/BAT - [решено] Поиск уникальных значений по файлу

Сообщение gora »

Цитата Sat_Kelman:



посчитать количество уникальных значений
CMD/BAT - [решено] Поиск уникальных значений по файлу






Код:

Код: Выделить всё

@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

Re: CMD/BAT - [решено] Поиск уникальных значений по файлу

Сообщение Iska »

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
Ответить

Вернуться в «Скриптовые языки администрирования Windows»