#author("2019-02-19T23:32:27+09:00","","") #navi(../) * PowerShellでユニークキーワードを取得する方法・Get-Unique・Sort-Object [#cd065e7e] 配列やGet-Processなどの表形式で返却される情報について、ユニークキーワードを取得する例を以下に記します。 #contents #htmlinsertpcsp(win-top.html,win-sp.html) * Sort-ObjectとGet-Uniqueを使ってユニークキーワードを取得する [#i7245117] 配列とGet-Process等のコマンドレットから返却される情報からユニークキーワードを取得します。 ** 配列 [#g7f18c3f] + 以下のように配列に文字列を設定しました。~ いくつか重複するキーワードがあります。 PS C:\> $os = @("windows", "linux", "bsd", "macos", "windows", "linux", "android", "ios", "android") PS C:\> $os windows linux bsd macos windows linux android ios android + ソートしてユニークを実行し、ユニークなキーワードを抽出します。 ++ ソートした結果です。 PS C:\> $os | Sort-Object android android bsd ios linux linux macos windows windows ++ ソートしてユニークなキーワードを抽出します。~ 期待した動作になりました。 PS C:\> $os | Sort-Object | Get-Unique android bsd ios linux macos windows - 失敗例~ ソートしないとユニークなキーワードは抽出できません。 PS C:\> $os | Get-Unique windows linux bsd macos windows linux android ios android * Get-Processなどの表形式で返却される情報からユニークなキーワードを抽出 [#qd645956] Get-Processを実行すると以下のような表形式で結果が返却されます。~ PS C:\> Get-Process | Select-Object -First 10 Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 618 34 30684 34264 11.17 11616 1 ApplicationFrameHost 145 9 1688 8280 0.09 8276 1 browser_broker 479 26 17292 3656 1.05 12232 1 Calculator 355 18 6564 20588 13.50 5624 1 conhost 565 21 1864 3184 476 0 csrss 672 19 2580 4432 568 1 csrss 499 19 9380 14840 9.02 2928 1 ctfmon 308 16 3472 8316 4196 0 dasHost 147 10 2572 4336 3760 0 DbxSvc 131 8 1964 6040 1.39 7732 1 dllhost <省略> 以下、プロセス名(ProcessName)からユニークなキーワードを抽出方法をいくつか紹介します。 ** ProcessNameのみを対象としユニークなキーワードを抽出 [#if47626c] *** Select-ObjectとGet-Uniqueを使ってユニークなキーワードを抽出 [#mbd69e9d] PS C:\> Get-Process | Select-Object ProcessName | Get-Unique -AsString ProcessName ----------- ApplicationFrameHost browser_broker Calculator conhost csrss ctfmon dasHost DbxSvc <省略> *** Select-Objectのみでユニークなキーワードを抽出 [#o325162d] PS C:\> Get-Process | Select-Object ProcessName -Unique ProcessName ----------- ApplicationFrameHost browser_broker Calculator conhost csrss ctfmon dasHost DbxSvc dllhost Dropbox <省略> ** 表形式を崩さずに、ProcessNameをユニークキーワードにする [#u90f150b] 表形式を崩さずにProcessNameのユニークキーワードを取得する例です。~ 但し、ProcessNameでユニークにすることで、他の値(他の列の値)の情報が削除(行削除)されますので実用的であるかはわかりせんが… *** Sort-ObjectのみでProcessNameのユニークなキーワードを抽出する [#r3da9c9f] PS C:\> Get-Process | Sort-Object ProcessName -Unique Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 614 34 27284 32248 14.61 11616 1 ApplicationFrameHost 143 9 1660 8024 0.09 8276 1 browser_broker 479 26 17292 640 1.05 12232 1 Calculator 349 18 6564 21024 18.42 5624 1 conhost 674 19 2580 4420 568 1 csrss 499 19 9668 14416 9.61 2928 1 ctfmon 308 16 3472 8316 4196 0 dasHost 147 10 2572 4412 3760 0 DbxSvc 227 20 4408 11496 0.52 9232 1 dllhost 308 14 2472 2868 0.28 2180 1 Dropbox <省略> 以上、Get-UniqueとSort-Objectコマンドを使ったユニークなキーワードを抽出方法でした。 #htmlinsertpcsp(win-btm.html,win-sp.html)