计算 IP 地址的出现次数并将结果导出为 CSV
Counting Occurrences of IP Addresses & Exporting Results to CSV
我的 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 地址的正则表达式时,它对我来说效果不佳。我也不确定如何获得 return 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
每当您 运行 遇到 "count occurrences of foo in bar" 问题时(特别是如果 bar 是 CSV),Group-Object
通常是首选工具:
Import-Csv 'input.csv' |
Group-Object src_ip -NoElement |
Select-Object Name, Count |
Export-Csv 'output.csv' -NoType
如果您想要不同的列 headers,请在 Select-Object
步骤中使用计算属性:
... | Select-Object @{n='src_ip';e={$_.Name}}, @{n='Occurrences';e={$_.Count}} | ...
我的 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 地址的正则表达式时,它对我来说效果不佳。我也不确定如何获得 return 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
每当您 运行 遇到 "count occurrences of foo in bar" 问题时(特别是如果 bar 是 CSV),Group-Object
通常是首选工具:
Import-Csv 'input.csv' |
Group-Object src_ip -NoElement |
Select-Object Name, Count |
Export-Csv 'output.csv' -NoType
如果您想要不同的列 headers,请在 Select-Object
步骤中使用计算属性:
... | Select-Object @{n='src_ip';e={$_.Name}}, @{n='Occurrences';e={$_.Count}} | ...