【Lifehacks】データリストの一意化を行う
■タスク
データリストに含まれるデータから重複を排除し一意化を行う。
■背景
・各種作業の前処理として良く必要となる処理。
・なるべく簡単に実施したい。
■方法
Cygwin32/UNIX互換ツールのsort、uniqコマンドを利用。
■メモ
例えばアクセスログ中に現れるユーザIDが何種類あるかを知りたい場合などデータ分析の結果として、または中間補助データとして、データリスト中のデータの一意化を行いたい場合があります。
元のデータリストから注目データを抽出し、1データ1行の形にした後であれば、sortとuniqの組み合わせで一意化が簡単に処理できます。
データによってはアルファベットの大文字・小文字を区別しない場合もあるため、状況に応じてオプション指定を使い分けます。
以下のプログラムは大文字・小文字を区別する・しない場合の両方の処理をまとめて行うバッチスクリプトです。
■使用方法
> SgUniqList.bat
■プログラム
: : SgUniqList.bat : データリストの一意化を行う。 : : Author: Orihika Ikuo : Create: 2009.12.01 : Update: 2009.XX.XX : set Cygwin=C:\0_Software\cygwin\bin set Sort=%Cygwin%\sort set Input=Input.txt set Output01_Case=Output01_Case.txt set Output02_IgCase=Output02_IgCase.txt %Sort% < %Input% | uniq | %Sort% -f > %Output01_Case% %Sort% -f < %Input% | uniq -i > %Output02_IgCase%
注:
・Windows環境ではWindowsのsortコマンドと区別するためCygwin32のパスを明記している。
・Output01_Caseは大文字・小文字を区別した結果。
・Output02_IgCaseは大文字・小文字を区別しない結果。