bea*_*gle 9 windows arrays sorting powershell powershell-2.0
我看过的每个地方都向我展示了使用物理文件的方法,但无论出于何种原因,都没有使用数组.我宁愿不存储这些数据,然后从文件调用,如果可能的话,直接使用数组.我被困在使用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
Run Code Online (Sandbox Code Playgroud)
然后我执行以下操作以获取在此数组中出现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
Run Code Online (Sandbox Code Playgroud)
但是我似乎无法在同一行上以逗号分隔.制作一个逗号分隔的列表出来只是阵列的是喜欢的东西相当简单$net_final -Join ","
和($net_final | Select-Object -Unique) -Join ","
,但我需要抓住出现的次数$ N数字数组项.
预期产量:
64.339.161.5,19.19.19.19,63.339.161.7
The*_*ian 42
在这里,给你一个漂亮的小单线:
($net_final|group|?{$_.count -ge 5}|Select -ExpandProperty Name) -join ","
Run Code Online (Sandbox Code Playgroud)
这将输出:
64.339.161.5,19.19.19.19,63.339.161.7
Run Code Online (Sandbox Code Playgroud)
小智 10
我遇到了来自TheMadTechnician的解决方案的问题,但发现以下效果很好:$ my_array -join","
小智 5
阅读速度更快/更简单:
$test = (1,3,7,7,3,2,1)
$($test | sort -Unique) -join ","
Run Code Online (Sandbox Code Playgroud)
1,2,3,7
您可以使用 -unique 标志将任何数组通过管道进行排序以进行重复数据删除;然后可以将包装的变量与您首选的分隔符连接起来。
归档时间: |
|
查看次数: |
69166 次 |
最近记录: |