物理ファイルで動作するが、何らかの理由で配列では動作しない、これを行う方法を、私が見てきたすべての場所で示しました。このデータを保存せずにファイルから呼び出して、可能であれば配列を直接操作するだけです。 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
さあ、あなたのための素敵な小さなワンライナー:
($net_final|group|?{$_.count -ge 5}|Select -ExpandProperty Name) -join ","
それは出力されます:
64.339.161.5,19.19.19.19,63.339.161.7
TheMadTechnicianのこのソリューションには問題がありましたが、次の作品がすばらしいことがわかりました:$ my_array -join "、"