uniq
フロントエンド


このフロントエンドからは、重複行をまとめるuniqプログラムを実行できます。PCK版のuniqは、cygwin版に-mオプションを追加したものになっています。このフロントエンドの「実行」ボタンは、何らかの入力が指定されたときに有効になります。

 

通常のウィンドウ

のメインダイアログから起動したときのウィンドウ

入力

マイコンピュータ、エクスプローラなどのウィンドウからファイルのアイコンをドラッグしてきてこのウィンドウにドロップすれば、そのファイルが入力ファイルとして使われます。

 

クリップボード  このチェックボックスをクリックすると、「入力ファイル」ダイアログボックスで指定された入力を使わず、クリップボードの内容を標準入力にリダイレクトします。

参照      このボタンをクリックすると、「ファイルを開く」ダイアログボックスが表示されます。入力ファイルを明示的に指定したい場合には、このダイアログボックスを使います。 

 

このプログラムは、入力ファイルを1つしか受け付けませんので、「参照」ボタンは直接「ファイルを開く」ダイアログボックスをオープンします。しかし、一般にこのプログラムの入力としては、Windows sort)またはgnu sort)の出力を使うことが多いはずです。入力の指定方法の詳細については、「入力の指定」を参照してください。

オプション

オプションを指定しなければ、まったく同じ内容の連続行を1つにまとめます。たとえば、入力が次のようなものであれば、

 

水戸    茨城県

水戸    茨城県

土浦    茨城県

土浦    茨城県

土浦    茨城県

日立    茨城県

千葉    千葉県

我孫子   千葉県

      千葉県

      千葉県

      千葉県

 

出力は次のようになります。

 

水戸    茨城県

土浦    茨城県

日立    茨城県

千葉    千葉県

我孫子   千葉県

      千葉県

 

比較範囲

以下のオプションを使えば、比較対象を絞り込むことができます。字数は、すべてバイト数です。つまり、漢字やひらがなの1字は2字と計算します。

 

-f 指定された個数だけフィールドを読み飛ばします。フィールドとは、空白文字によって区切られている空白文字以外の文字によって構成される塊のことです。たとえば、-f 1を指定すると、上記の入力からは次の出力が得られます。

 

水戸    茨城県

千葉    千葉県

 

-s 指定された字数だけ文字を読み飛ばします。-s 4を指定すると、上記の入力からは次の出力が得られます。

 

水戸    茨城県

千葉    千葉県

我孫子   千葉県

      千葉県

 

   また、-f 1 –s 4を指定すると、上記の入力からは次の出力が得られます。

 

水戸    茨城県

千葉    千葉県

 

-w 上記の読み飛ばしを行ったあと(読み飛ばしがなければ先頭から)、何字分で比較するかを指定します。

表示するもの

通常表示 比較の結果、重複していなかった行と重複していた行のなかの先頭行を表示します。

 

-d 比較の結果、重複していた行のなかの先頭行を表示します。冒頭の入力に対してこのオプションだけを指定したときの出力は、次のようになります。

 

水戸    茨城県

土浦    茨城県

      千葉県

 

-D 比較の結果、重複していた行をすべて表示します。冒頭の入力に対してこのオプションだけを指定したときの出力は、次のようになります。

 

水戸     茨城県

水戸     茨城県

土浦     茨城県

土浦     茨城県

土浦     茨城県

       千葉県

       千葉県

       千葉県

 

-u 比較の結果、重複していなかった行を表示します。冒頭の入力に対してこのオプションだけを指定したときの出力は、次のようになります。

 

日立    茨城県

千葉    千葉県

我孫子   千葉県

その他のオプション

-c 行頭に重複数を表示します(重複していない場合は1)。冒頭の入力に対してこのオプションだけを指定したときの出力は、次のようになります。

 

      2 水戸    茨城県

      3 土浦    茨城県

      1 日立    茨城県

      1 千葉    千葉県

      1 我孫子   千葉県

      3       千葉県

 

-i 大文字と小文字を区別しません。

 

-m 比較のために、MBCS対応の比較関数だとされているVisual C++ランタイムライブラリの_mbscmp_mbsicmp関数を使います。

ヘルプ、バージョン

--help  uniq.exeのヘルプメッセージが表示されます。

--version  uniq.exeのバージョン番号が表示されます。

 

これらのオプションを指定すると、オプショングループボックス内のほかのオプションは指定できなくなります。

出力

通常、出力ファイル名を指定する必要はありません。指定しなければ、出力は一時ファイルに書き込まれ、その一時ファイルが指定されたテキストエディタによってオープンされます。しかし、ファイル名を指定すれば、出力はそのファイルにリダイレクトされ、テキストエディタにもそのファイルが渡されます。また、中央のエディットボックスにファイル名が表示され、その下の「追加」チェックボックスをチェックできるようになります。「追加」チェックオックスをチェックすると、そのファイルの元の内容の末尾に出力を書き足します。出力の指定方法の詳細は、「出力の指定」を参照してください。

コマンド行

出力グループボックスの下の行には、組み立てたコマンド行が表示されます。(pipeline)の「編集」ボタンで起動したときを除き、コマンド行の左側の四角形をマウスでクリックしてドラッグしていくと、他のcmdline)にドロップできます。また、「コピー」ボタンを押すと、コマンド行情報がクリップボードにセットされます。クリップボードにコマンド行情報がセットされているときに、マウスの右ボタンをクリックし、コンテキストメニューから「貼り付け」を選択すると、クリップボードのコマンド行情報が反映されます。ドラッグアンドドロップとコピーアンドペーストの詳細は、「ドラッグアンドドロップとコピーアンドペースト」を参照してください。エキスポート、インポートされるときのコマンド行情報の形式については、「コマンド行情報のやり取りの仕組み」を参照してください。さらに、ダイアログボックス上でマウスの右ボタンを押したときに表示されるコンテキストメニューの「.batロード」、「.bat保存」コマンドを使えば、同じ形式のコマンド行情報を.batファイルとして保存し、あとでロードすることができます。このロード、保存機能の詳細は、「.batファイルのロードと保存」を参照してください。

設定

設定」ボタンを押すと、「設定」ダイアログボックスが表示されます。このダイアログボックスでは、

 

*出力の表示に使うテキストエディタ

*エクスプローラなどからファイルやフォルダをドロップしたときの確認メッセージの有無

*出力の末尾に実行したコマンド行、実行時間などを付加するかどうか

*コマンド行プログラムに渡すファイル名のディレクトリ区切り子を\ではなく/にするかどうか

*コマンド行プログラムに渡すファイル名を8.3形式にするかどうか

*コマンド行プログラムとしてどれを使うか

 

を指定できます。詳しくは、「設定ダイアログボックス」を参照してください。

opt保存

opt保存」ボタンを押すと、「オプション」グループボックス内の設定が保存されます。詳しくは「オプション保存」を参照してください。