並べ替えられた一覧から一意の項目を返します。
構文
Get-Unique [-AsString] [-InputObject <psobject>] [<CommonParameters>] Get-Unique [-OnType] [-InputObject <psobject>] [<CommonParameters>]
説明
Get-Unique コマンドレットは、並べ替えられた一覧の各項目をその次の項目と比較し、重複があった場合はそれを取り除き、各項目のインスタンスを 1 つだけ返します。このコマンドレットが正しく動作するには、一覧が並べ替えられている必要があります。
パラメーター
-AsString
データを文字列として扱います。このパラメーターを指定しない場合、データはオブジェクトとして扱われます。したがって、ファイルのコレクションなど、同じ型のオブジェクトのコレクションを Get-Unique に送ると、最初の 1 つだけが返されます。このパラメーターを使用すると、ファイル名など、オブジェクト プロパティの一意の値を見つけることができます。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-InputObject <psobject>
Get-Unique の入力を受け入れます。オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
Get-Unique は、InputObject を使用して送られた入力をコレクションとして扱い、コレクション内の各項目は列挙しません。コレクションは単一の項目であるため、InputObject に指定された入力が必ずそのまま返ります。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByValue) |
ワイルドカード文字を許可する |
false |
-OnType
各型のオブジェクトを 1 つだけ返します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
<CommonParameters>
このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.
入力と出力
入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。
入力 |
System.Management.Automation.PSObject パイプを使用してどのような型のオブジェクトでも Get-Unique に渡すことができます。 |
出力 |
System.Management.Automation.PSObject Get-Unique から返されるオブジェクトの型は、入力によって決まります。 |
注
Get-Unique は、その組み込みエイリアスである "gu" で参照することもできます。詳細については、「about_Aliases」を参照してください。
一覧を並べ替えるには、Sort-Object を使用します。Sort-Object で Unique パラメーターを使用すると、一覧から一意の項目を見つけることもできます。
例 1
C:\PS>$a = $(foreach ($line in get-content C:\Test1\File1.txt) {$line.tolower().split(" ")}) | sort | get-unique C:\PS> $a.count 説明 ----------- これらのコマンドは、テキスト ファイル内にある一意の語の数を調べます。 最初のコマンドは、File.txt ファイルの内容を取得します。各テキスト行を小文字に変換し、スペース (" ") で区切られた単語ごとに、それぞれ別の行に分解します。次に、こうしてできた一覧をアルファベット順 (既定) に並べ替え、Get-Unique コマンドレットを使用して重複する語を取り除きます。この結果は $a 変数に保存されます。 2 番目のコマンドは、$a に保存されている文字列のコレクションの Count プロパティを使用して、$a に保存されている項目数を特定します。
例 2
C:\PS>1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | sort-object | Get-Unique 説明 ----------- このコマンドは、一連の整数の中から一意のメンバーを見つけます。最初のコマンドは、コマンド ラインに入力された整数の配列を受け取り、パイプを使用して Sort-Object コマンドレットに渡して並べ替えた後、パイプを使用して Get-Unique に渡して重複エントリを取り除きます。
例 3
C:\PS>get-childitem | sort-object {$_.GetType()} | unique -OnType 説明 ----------- このコマンドは、Get-ChildItem コマンドレットを使用して、ファイルやディレクトリなどローカル ディレクトリの内容を取得します。その結果は、パイプライン演算子 (|) によって Sort-Object コマンドレットに渡されます。$_.GetType() ステートメントで各ファイルまたはディレクトリに GetType メソッドが適用されます。次に、Sort-Object は型ごとに項目を並べ替えます。もう 1 つのパイプライン演算子は、結果を Get-Unique に渡します。OnType パラメーターが指定されているため、Get-Unique は各型のオブジェクトを 1 つだけ返します。
例 4
C:\PS>get-process | sort-object | select processname | get-unique -asstring 説明 ----------- このコマンドは、コンピューター上で実行しているプロセスの名前を、重複分を取り除いて取得します。 Get-Process コマンドは、コンピューター上のプロセスをすべて取得します。結果はパイプライン演算子 (|) によって Sort-Object に渡されます。Sort-Object は ProcessName に基づいてプロセスをアルファベット順 (既定) に並べ替えます。結果はパイプを使用して Select-Object コマンドレットに渡され、各オブジェクトの ProcessName プロパティの値のみが選択されます。次に、結果はパイプを使用して Get-Unique に渡され、重複が取り除かれます。 AsString パラメーターが指定されているため、Get-Unique は ProcessName の値を文字列として扱います。このパラメーターを指定しない場合、Get-Unique は ProcessName の値をオブジェクトとして扱い、オブジェクトのインスタンスを 1 つだけ、つまり一覧の最初のプロセス名を返します。
関連項目