У меня есть данные в файле CSV, который выглядит так:
src_ip,dst_ip,tran_src_ip,tran_dst_ip,srczone,src_country_code,dstzone,dst_country_code 75.76.77.78,23.24.25.26,192.168.1.100,192.168.1.18,"""""WAN""""",USA,"""""LOCAL""""",USA 75.76.77.78,23.24.25.26,,192.168.1.21,"""""WAN""""",USA,"""""LOCAL""""",USA 12.13.14.15,23.24.25.26,,192.168.1.21,"""""WAN""""",USA,"""""LOCAL""""",USA 23.24.25.26,23.24.25.26,192.168.1.100,192.168.1.18,"""""WAN""""",USA,"""""LOCAL""""",USA
Я хочу иметь возможность импортировать этот файл, просмотреть значения в столбце src_ip
и создать новый CSV-файл, который будет содержать столбец, показывающий src_ip
и сколько раз этот адрес появлялся во входном файле.
Я нашел такой код, который может найти определенный шаблон, но он не работает для меня, когда я ввожу регулярное выражение для IP-адресов. Я также не уверен, как заставить его возвращать IP-адрес вместе с количеством вхождений для этого конкретного IP-адреса.
$regex = '\b(\w+)=([^ ]+)'
(Select-String -Path 'input_file.csv' -Pattern $regex -AllMatches |
Select-Object -ExpandProperty Matches).Count
В идеале я хотел бы, чтобы результат выглядел примерно так.
src_ip,Occurances 75.76.77.78,2 12.13.14.15,1 23.24.25.26,1