我看过的所有地方都向我展示了处理物理文件的方法,但是不管出于什么原因,都不能使用数组。我不希望存储这些数据,然后从文件中调用,如果可能的话直接使用数组。我被困在使用PowerShell v2,但这仍然是可行的。我感谢事先提供的一切帮助。
我有一个名为$net_final
的数组,它具有以下值:
63.232.3.102
63.232.3.102
64.339.161.5
64.339.161.5
64.339.161.5
64.339.161.5
64.339.161.5
64.339.161.5
19.19.19.19
19.19.19.19
19.19.19.19
19.19.19.19
19.19.19.19
19.19.19.19
19.19.19.19
63.339.161.7
63.339.161.7
63.339.161.7
63.339.161.7
63.339.161.7
然后,我执行以下操作以获得在此数组中发生5次或更多次的IP列表:
($net_final | Group-Object | Where-Object {$_.Count -ge 5} | Format-Table -HideTableHeaders -Property Name | Out-String).Trim()
这给了我这个输出:
64.339.161.5
19.19.19.19
63.339.161.7
但是,我似乎不能让它们在同一行上用逗号分隔。仅从数组中生成逗号分隔列表对于$net_final -Join ","
和($net_final | Select-Object -Unique) -Join ","
之类的事情来说相当简单,但是我需要抓取发生$N次数的数组项。
预期输出
64.339.161.5,19.19.19.19,63.339.161.7
发布于 2014-05-01 14:50:49
给你,给你一个不错的小衬垫:
($net_final|group|?{$_.count -ge 5}|Select -ExpandProperty Name) -join ","
这将产生以下结果:
64.339.161.5,19.19.19.19,63.339.161.7
发布于 2014-10-15 11:49:35
我在TheMadTechnician给出的解决方案上遇到了问题,但是我发现下面的工作很棒:
$my_array -join ","
发布于 2017-01-03 11:05:35
读起来更快/更简单:
$test = (1,3,7,7,3,2,1)
$($test | sort -Unique) -join ","
1,2,3,7
您可以使用-unique标志对任何数组进行排序,以进行dedupe;然后,可以将包装的变量与首选的分隔符连接起来。
https://stackoverflow.com/questions/23417896
复制