Arrays Powershell从IP';发生次数为$N的
我所看到的每一个地方都向我展示了处理物理文件的方法,但不管出于什么原因,都不能使用数组。我不希望存储这些数据,然后从文件调用,如果可能的话,直接使用数组。我一直在使用PowerShell v2,但这仍然是可行的。我感谢所有的帮助 我有一个名为Arrays Powershell从IP';发生次数为$N的,arrays,windows,sorting,powershell,powershell-2.0,Arrays,Windows,Sorting,Powershell,Powershell 2.0,我所看到的每一个地方都向我展示了处理物理文件的方法,但不管出于什么原因,都不能使用数组。我不希望存储这些数据,然后从文件调用,如果可能的话,直接使用数组。我一直在使用PowerShell v2,但这仍然是可行的。我感谢所有的帮助 我有一个名为$net\u 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 1
$net\u 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|u final | Group Object | Where Object{$\.Count-ge 5})
格式表-HideTableHeaders-属性名称|输出字符串).Trim()
这让我得到了这个输出:
64.339.161.5
19.19.19.19
63.339.161.7
但是,我似乎无法将它们用逗号分隔在同一行上。仅从数组中生成逗号分隔的列表对于$net\u final-Join“,“
和($net\u final | Select Object-Unique)-Join“,“
之类的事情来说相当简单,但我需要获取出现次数为$N的数组项
预期产出:
64.339.161.5,19.19.19,63.339.161.7
给你,一个漂亮的小内衬:
($net_final|group|?{$_.count -ge 5}|Select -ExpandProperty Name) -join ","
这将产生:
64.339.161.5,19.19.19.19,63.339.161.7
我对MadTechnician给出的解决方案有疑问,但发现以下方法非常有效:
$my_array-join”,“
阅读速度更快/更简单:
$test = (1,3,7,7,3,2,1)
$($test | sort -Unique) -join ","
1,2,3,7
您可以使用-unique标志对任何阵列进行排序,以消除重复数据;然后,可以将包装好的变量与首选分隔符联接 非常感谢你。工作起来很有魅力。我不敢相信我离答案这么近,却没有意识到。令人沮丧,但再次非常感谢。对我来说也很有用。谢谢。问题是它会给所有的IP加上逗号,而不仅仅是唯一的,而原始帖子只想在有5个或更多重复的地方加上逗号,这也不能解释。您的代码返回所有15个IP地址,并用逗号连接。这与mgood1的答案有相同的问题。这将收集所有唯一的条目,其中请求者只需要重复一定次数的条目。