PowerShell Cmdlet - Get-Unique
 記事記号:[mf1995] 初版:2011/Sep/30

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    Get-Unique
    
概要
    並べ替えられた一覧から一意の項目を返します。
    
構文
    Get-Unique [-AsString] [-InputObject <psobject>] [<CommonParameters>]
    
    Get-Unique [-OnType] [-InputObject <psobject>] [<CommonParameters>]
    
説明
    Get-Unique コマンドレットは、並べ替えられた一覧の各項目をその次の項目と比較
    し、重複があった場合はそれを取り除き、各項目のインスタンスを 1 つだけ返しま
    す。このコマンドレットが正しく動作するには、一覧が並べ替えられている必要があ
    ります。
    
パラメーター
    -AsString [<SwitchParameter>]
        データを文字列として扱います。このパラメーターを指定しない場合、データは
        オブジェクトとして扱われます。したがって、ファイルのコレクションなど、同
        じ型のオブジェクトのコレクションを Get-Unique に送ると、最初の 1 つだけ
        が返されます。このパラメーターを使用すると、ファイル名など、オブジェクト 
        プロパティの一意の値を見つけることができます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -InputObject <psobject>
        Get-Unique の入力を受け入れます。オブジェクトが格納されている変数を入力
        するか、オブジェクトを取得するコマンドまたは式を入力します。
        
        Get-Unique は、InputObject を使用して送られた入力をコレクションとして扱
        い、コレクション内の各項目は列挙しません。コレクションは単一の項目である
        ため、InputObject に指定された入力が必ずそのまま返ります。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   true (ByValue)
        ワイルドカード文字を許可する false
        
    -OnType [<SwitchParameter>]
        各型のオブジェクトを 1 つだけ返します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    <CommonParameters>
        このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
        Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help 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.tolowe
    r().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-O
    bject コマンドレットに渡して並べ替えた後、パイプを使用して Get-Unique に渡し
    て重複エントリを取り除きます。
    
    -------------------------- 例 3 --------------------------
    
    C:\PS>get-childitem | sort-object {$_.GetType()} |  unique -OnType
    
    説明
    -----------
    このコマンドは、Get-ChildItem コマンドレットを使用して、ファイルやディレクト
    リなどローカル ディレクトリの内容を取得します。その結果は、パイプライン演算子 
    (|) によって Sort-Object コマンドレットに渡されます。$_.GetType() ステートメ
    ントで各ファイルまたはディレクトリに GetType メソッドが適用されます。次に、So
    rt-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 は Pro
    cessName に基づいてプロセスをアルファベット順 (既定) に並べ替えます。結果は
    パイプを使用して Select-Object コマンドレットに渡され、各オブジェクトの Proc
    essName プロパティの値のみが選択されます。次に、結果はパイプを使用して Get-U
    nique に渡され、重複が取り除かれます。
    
    AsString パラメーターが指定されているため、Get-Unique は ProcessName の値を
    文字列として扱います。このパラメーターを指定しない場合、Get-Unique は Proces
    sName の値をオブジェクトとして扱い、オブジェクトのインスタンスを 1 つだけ、
    つまり一覧の最初のプロセス名を返します。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=113335
    Select-Object 
    Sort-Object 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、Get-Unique
ご利用数: 1912566
感想・要望・問い合わせは こちら