[ホーム] - [バッチファイル サンプル一覧] - [ファイルを重複削除しソートするサンプル]

ファイルを重複削除しソートするサンプル | Windows バッチファイル






Windows 環境においてテキストファイルの重複を削除しさらにソートするサンプルコードを紹介します。
Windows標準では重複削除のコマンドはないため、今回はcygwin を使用します。
一方ソート(並べ替え)のコマンドはWindows 標準で sort コマンドがあるのでこれを使用します。

このコマンドは C:\Windows\System32\sort.exe に存在します。


サンプルコード集

以下は Windows 10 環境におけるサンプルコードと実行結果です。

次のサンプルコートは c:\temp\testfile.txt に関して重複の削除を行いかつソートを行っています。結果ファイルはtestfile2.txtに出力されています。

参考:
Windows で Linux のbash シェルを動かす簡単な方法


サンプルコード:


c:\cygwin\bin\sort.exe c:\temp\testfile.txt | uniq > c:\temp\testfile2.txt


以下はsort コマンドの仕様です。オプションを変更することによりソートの方式を変更することが可能です。


C:\>sort /?
SORT [/R] [/+n] [/M KB] [/L ロケール] [/REC レコードバイト]
[[ドライブ1:][パス1]ファイル名1] [/T [ドライブ2:][パス2]]
[/O [ドライブ3:][パス3]ファイル名3]
/+n 各行の比較を始める文字番号 n を指定します。
/+3 は、各行の 3 番目の文字から比較を始める
ことを意味します。n 文字より少ない行は、ほかの
行より前に照合されます。
既定では、比較はそれぞれの行の最初から始め
ます。
/L[OCALE] ロケール 指定されたロケールでシステム既定のロケールを
上書きします。""C"" ロケールは、最も速い照合
シーケンスに従います。現在指定できるロケール
は ""C"" のみです。並べ替えは、常に大文字と小
文字を区別します。
/M[EMORY] KB 並べ替えに使うメイン メモリのサイズを KB
で指定します。メモリ サイズは、常に最小
160 KB で制限されます。メモリ サイズが
指定された場合、メイン メモリをどれだけ利用
できるかにかかわらず、指定されたサイズのメモリ
を使用します。

通常は、メモリ サイズを指定していないとき、最高
のパフォーマンスを得られます。既定では、並べ替
えが既定の最大メモリ サイズに格納できる場合は、
(一時ファイルを使わないで) 1 回のパスで実行
します。そうでない場合は、(一部の並べ替えられ
たデータを一時ファイルに格納して) 2 回のパス
で実行し、並べ替えと結合パスのためのメモリのサイ
ズを等しくします。入力と出力の両方がファイルの
場合、既定の最大メモリ サイズは利用できるメイン
メモリの 90% になります。そうでない場合は、
メイン メモリの 45% になります。
/REC[ORD_MAXIMUM] 文字数 レコードの最大文字数を指定します
(既定値 4096、最大値 65535)。
/R[EVERSE] 並べ替えの順序を降順にします。つまり、Z から A、
9 から 0 の順に並べ替えます。
[ドライブ1:][パス1]ファイル名1
並べ替えられるファイルを指定します。指定されて
いない場合、標準入力を並べ替えます。
入力ファイルを指定する方が同じファイルへの標準
入力をリダイレクトするより速くなります。
/T[EMPORARY]
[ドライブ2:][パス2]
データをメイン メモリに格納できないときのた
めに、並べ替えのための一時記憶域を保持する
ディレクトリを指定します。既定ではシステムの
一時ディレクトリを使用します。
/O[UTPUT]
[ドライブ3:][パス3]ファイル名3
並べ替えられた入力ファイルが格納されるファイル
を指定します。指定されていない場合、データは
標準出力に書き込まれます。出力ファイルを指定す
る方が同じファイルへの標準出力をリダイレクト
するより速くなります。




サンプルコード:








本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。)

[ホーム] - [バッチファイル サンプル一覧]