次の方法で共有


Get-Unique

並べ替えられたリストから一意の項目を返します。

構文

Get-Unique
   [-InputObject <PSObject>]
   [-AsString]
   [<CommonParameters>]
Get-Unique
   [-InputObject <PSObject>]
   [-OnType]
   [<CommonParameters>]

説明

コマンドレットは Get-Unique 、並べ替えられたリスト内の各項目を次の項目と比較し、重複を排除し、各項目のインスタンスを 1 つだけ返します。 コマンドレットが適切に機能するためにはリストを並べ替える必要があります。

Get-Unique では、大文字と小文字が区別されます。 その結果、大文字と小文字のみが異なる文字列は一意であると見なされます。

例 1: テキスト ファイル内の一意の単語を取得する

これらのコマンドは、テキスト ファイルの一意の単語の数を調べます。

$A = $( foreach ($line in Get-Content C:\Test1\File1.txt) {
    $line.tolower().split(" ")
  }) | Sort-Object | Get-Unique
$A.count

最初のコマンドは、ファイルの内容を File.txt 取得します。 テキストの各行を小文字に変換し、各単語をスペース (" ") の個別の行に分割します。 次に、結果のリストをアルファベット順 (既定値) で並べ替え、 コマンドレットを Get-Unique 使用して重複する単語を削除します。 結果は 変数に $A 格納されます。

2 番目のコマンドでは、 内の文字列$Aのコレクションの Count プロパティを使用して、 内の$A項目の数を決定します。

例 2: 配列内の一意の整数を取得する

このコマンドは、整数のセットの一意のメンバーを取得します。

1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | Sort-Object | Get-Unique

1
3
4
5
12
23
4643

最初のコマンドは、コマンド ラインで型指定された整数の配列を受け取り Sort-Object 、それらを並べ替えるコマンドレットにパイプし、 に Get-Uniqueパイプして、重複するエントリを排除します。

例 3: ディレクトリ内の一意のオブジェクト型を取得する

このコマンドでは、 コマンドレットを Get-ChildItem 使用して、ファイルとディレクトリを含むローカル ディレクトリの内容を取得します。

Get-ChildItem | Sort-Object {$_.GetType()} | Get-Unique -OnType

パイプライン演算子 (|) は、コマンドレットに結果を Sort-Object 送信します。 ステートメントは$_.GetType()、GetType メソッドを各ファイルまたはディレクトリに適用します。 次に、 Sort-Object 項目を種類別に並べ替えます。 別のパイプライン 演算子は、結果を に送信します Get-UniqueOnType パラメーターは、各型のGet-Uniqueオブジェクトを 1 つだけ返すように指示します。

例 4: 一意のプロセスを取得する

このコマンドは、コンピューター上で実行されているプロセスの名前を取得し、重複を削除してその結果を返します。

Get-Process | Sort-Object | Select-Object processname | Get-Unique -AsString

コマンドは Get-Process 、コンピューター上のすべてのプロセスを取得します。 パイプライン演算子 (|) は 結果を に Sort-Object渡します。既定では、 プロセスは ProcessName でアルファベット順に並べ替えられます。 結果は コマンドレットに Select-Object パイプ処理され、各オブジェクトの ProcessName プロパティの値のみが選択されます。 その後、重複を排除するために、結果が にパイプ Get-Unique されます。

AsString パラメーターは、Get-UniqueProcessName 値を文字列として扱うように指示します。 このパラメーターを指定しない場合、 Get-Uniqueは ProcessName 値をオブジェクトとして扱い、オブジェクトのインスタンス (つまり、リスト内の最初のプロセス名) を 1 つだけ返します。

パラメーター

-AsString

このコマンドレットがデータを文字列として使用することを示します。 このパラメーターを指定しない場合、データはオブジェクトとして扱われます。そのため、同じ型のオブジェクトのコレクション (ファイルのコレクションなど) を に Get-Unique送信すると、1 つだけ (最初の) が返されます。 このパラメーターを使用すると、ファイル名などのオブジェクトのプロパティの一意の値を検索できます。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

の入力を Get-Unique指定します。 オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。

このコマンドレットは、 InputObject を使用して送信された入力をコレクションとして扱います。 コレクション内の個々の項目は列挙されません。 コレクションは 1 つの項目であるため、 InputObject を 使用して送信された入力は常に変更されずに返されます。

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-OnType

このコマンドレットは、各型のオブジェクトを 1 つだけ返します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

PSObject

任意の種類のオブジェクトをこのコマンドレットにパイプできます。

出力

PSObject

このコマンドレットは、重複せずに入力オブジェクトを返します。

メモ

PowerShell には、 の次のエイリアスが Get-Unique含まれています。

  • すべてのプラットフォーム:
    • gu

詳細については、「about_Aliases」を参照してください。

リストを並べ替えるには、 を使用 Sort-Objectします。 の Unique パラメーター Sort-Object を使用して、リスト内の一意の項目を検索することもできます。