フィルターの使用


ファイルやフォルダー比較の際、比較範囲を限定するためにファイルフィルターを使用することができます。 これは、比較結果から、あなたが興味のない差異を取り除きたい場合に便利です。 フィルターは、正規表現を元に規定します。 WinMerge は、ポピュラーな PCRE (Perl Compatible Regular Expressions) 正規表現エンジンを使用しています。

フィルターの基本機能はシンプルです。 通常比較されるであろう、それぞれのアイテム(フォルダー、ファイル、ファイル中の行)を評価し、 対象のアイテムがフィルター式にマッチした場合、フィルターを適用します。 フィルタータイプにより、アイテムは、比較に含められるか、除外されるかのどちらかです。

フォルダー比較用とファイル比較用の異なるWinMergeフィルターがあります。

フォルダー比較: ファイルマスクとファイルフィルター

単純なファイルマスク、または、より複雑なフィルターにより、 ファイルフィルター中で指定された複数の規則を適用することで、 フォルダー比較中に含めるファイルを指定することができます。

フィルターされるファイルやフォルダーは、デフォルトで隠されます。それは、典型的にあなたが望むものでしょう。フィルターされたアイテムを表示するには、表示スキップされた項目の表示をクリックしてください。しかし、フォルダー比較ウィンドウは、それらについて最小限の情報しか表示しません。例えば、あなたは、スキップされたファイルがテキストファイルかバイナリファイルか判らないでしょう。

ファイル比較: 行フィルターと置換フィルター

行フィルターは、ファイル比較操作のみに適用されます。 それにより、単一行の差異を無視することができます。

置換フィルターは、ファイル比較操作のみに適用されます。 置換フィルターは、diffブロック内の文字列を指定された文字列に置換して比較し、 結果が一致する場合はそのdiffブロックを無視します。 これは、興味のない多数の変更を無視するのに役立ちます。

1. ファイルマスクの使用

フォルダー比較で含めるファイル拡張子を指定するために、1つ以上のファイルマスクを使用できます。その他のファイルは選択対象から除外されます。

1.1. ファイルマスクと定義と適用

フォルダー比較操作を実行時に、ファイルマスクを定義し適用する:

  • ファイルまたはフォルダーの選択ダイアログを使用しているなら、 1(左)2(右)のフォルダー選択後、 フィルターフィールドへ、 1つか複数のファイルマスクを入力してください。 マスクは、フォルダー比較操作を開始した時に適用されます。

  • WinMergeのコマンドラインを使用している場合は、ファイルマスクを指定する -fフラグ(次のセクションの例を参照)を使用してください。

1.2. ファイルマスクの文法と例

ファイルマスクや拡張フィルターは以下の形式で指定できます:

        グループ1のフィルター1;フィルター2 ...|グループ2のフィルター1;フィルター2 ...|...
      
  • | 文字はフィルターグループを区切り、論理 AND として機能します。

  • 同じグループ内のフィルターは ; で区切られ、論理 OR として解釈されます。

  • ファイルは各グループ内の少なくとも1つのフィルターに一致する場合にのみ含まれます。

  • f:f!: など、ダブルクォートで囲まれていない正規表現内で |(パイプ)文字をリテラルとして使用したい場合は、代わりに || を使用してください。

    例: f:(abc||def)\.txt$

  • 各フィルター(例: Filter1, Filter2)は、以下のいずれかのタイプにすることができます:

    *.ext

    拡張子によるファイルマスク(例: *.txt)

    *.

    拡張子のないファイル(例: README)

    !*.ext

    指定した拡張子に一致するファイルを除外(2.16.19 以降で使用可能)

    folder\

    対象フォルダー(末尾は必ず \ にする)(2.16.19 以降で使用可能)

    !folder\

    一致するフォルダーを除外(2.16.19 以降で使用可能)

    f: 正規表現

    正規表現を使用してファイル名を一致(2.16.49 以降で使用可能)

    f!: 正規表現

    正規表現に一致するファイルを除外(2.16.49 以降で使用可能)

    d: 正規表現

    正規表現を使用してフォルダー名を一致(2.16.49 以降で使用可能)

    d!: 正規表現

    正規表現に一致するフォルダーを除外(2.16.49 以降で使用可能)

    fe:

    ファイルに対するフィルター式(例: fe:Size < 1KB)(2.16.49 以降で使用可能)

    fe!:

    ファイルを除外するためのフィルター式(2.16.49 以降で使用可能)

    de:

    フォルダーに対するフィルター式(2.16.49 以降で使用可能)

    de!:

    フォルダーを除外するためのフィルター式(2.16.49 以降で使用可能)

    pf: ファイルフィルター名

    名前でファイルフィルターを適用(2.16.49 以降で使用可能)

例1 ファイルマスク

このコマンドラインの例では、フォルダー比較操作は拡張子 xml または txt のファイルのみを対象とし、それ以外のファイルは省略されます。

WinMergeU c:\project\docs c:\temp /f *.xml;*.txt


例2 フォルダーの除外(2.16.19以降)

このコマンドラインの例では、フォルダー比較操作は、 .git.vsフォルダーを除外します:

WinMergeU c:\project\docs c:\temp /f !.git\;!.vs\


例3 フィルター式(バージョン 2.16.49 以降)

このコマンドラインの例では、フォルダー比較操作は cpp または h の拡張子を持ち、かつサイズが 1KB 未満のファイルのみを対象とします:

WinMergeU c:\project\docs c:\temp /f "*.cpp;*.h|fe:Size < 1KB"


1.3. フィルタ式の構文

WinMerge では、ファイルのメタデータ、内容、比較コンテキストに対して動作する強力なフィルタ式を使用できます。本セクションでは、サポートされる属性、演算子、関数、データ型、および評価ルールについて説明します。

1.3.1. リテラルと型

サポートされるリテラルの型は以下の通りです:

  • Boolean: true, false

  • Integer: 64ビット符号付き整数 (例: 1024, 100KB, 7days などの単位付きも可能)

  • String: ダブルクォートで囲まれた文字列 (例: "example")

内部的に扱われる型は以下の通りです: Boolean, Integer, Timestamp, String, File Content, Array, or undefined.

1.3.2. 属性

フィルタ式では、ファイルのメタデータや内容を参照する多様な属性が利用できます。属性名の大文字・小文字は区別されません。必要に応じて、比較対象のどの側(Left, Right, Middle)かを接頭辞で指定できます。

1.3.2.1. コア属性
Exists

ファイルが存在する場合は true を返し、存在しない場合は false を返します。

Name

ファイル名

Extension

ファイル拡張子

Folder

ファイル名およびベースフォルダーを除いた相対パスを返します。

FullPath

ファイルのフルパスを返します。

Size

ファイルサイズ

Date

最終更新のタイムスタンプ

DateStr

yyyy-MM-dd 形式の最終更新日付の文字列を返します。

CreationTime

作成日時のタイムスタンプを返します。

Attribute

ファイル属性を整数値で返します。

AttrStr

ファイル属性の文字列を返します。例:"R" は読み取り専用、"H" は隠しファイル、"A" はアーカイブ、"S" はシステムファイルを示します。

Content

ファイルの内容を表します。FileContent 型の値を返します。この型には contains および recontains のみ使用できます。

1.3.2.2. 比較対象の側を指定する接頭辞

比較対象のファイルの側を指定するために、接頭辞を追加できます:

  • Left: 左側のファイルに適用されます(例: LeftSize

  • Right: 右側のファイルに適用されます(例: RightDate

  • Middle: 3方向比較における中央のファイルに適用されます(例: MiddleName

接頭辞のない属性(例: Size)は、左・中央・右のすべての側の値を含む配列を返します。

1.3.2.3. 配列の評価

接頭辞のない属性(例: Size)は、左・中央・右のすべての側からの値を含む配列を返します。これらの配列に対して演算子を適用する場合、比較対象がスカラーか他の配列かによって動作が異なります。

1.3.2.3.1. 配列とスカラーの比較

配列とスカラーを比較する場合、演算は各配列要素に対して個別に適用され、結果はブール値の配列になります。このブール配列に true が1つでも含まれていれば、全体の評価結果は true になります。すべてが false であれば false になります。

例4 例

[3, 5, 8] > 6 -> [false, false, true] -> true

1.3.2.3.2. 配列と配列の比較

2つの配列を比較する場合、挙動は演算子によって異なります:

  • = および != の場合:配列の長さが同じである必要があります。結果は配列ではなく単一のブール値になります。= はすべての要素が一致する場合のみ true を返し、!= はいずれかの要素が異なる場合に true を返します。

  • 他のすべての演算子(例: >, <)では、各要素ごとに演算が適用され、ブール値の配列が生成されます。この配列に true が1つでも含まれていれば、式全体の評価結果は true になります。すべてが false の場合は false になります。

例5 例

[2, 4] = [2, 4] -> true
[2, 4] != [2, 5] -> true (4 != 5 だから)
[3, 5, 8] > [6, 4, 2]
 -> [false, true, true]
 -> true (少なくとも1つの比較が true だから)

1.3.2.3.3. 要約
  • 配列とスカラーの比較では、ブール値の配列が生成されます。その配列に true が1つでも含まれていれば、式の評価結果は true になります。

  • = または != を使った配列同士の比較では、単一のブール値が返されます。

  • その他の演算子による配列同士の比較では、ブール配列が生成され、その中に true が1つでも含まれていれば最終的な評価結果は true になります。

1.3.3. 演算子

=!=likematchescontainsrecontains などの文字列比較演算子は、現在すべて大文字小文字を区別しません。

<, <=, >, >=

数値、タイムスタンプ、または文字列の比較

=

等価比較

!=

不等比較

+, -, *, /, %

算術演算子。+- は加算および減算、*/ は乗算および除算、% は剰余演算(余り)を行います。

and, or, not

論理演算子

like

ワイルドカードによる文字列一致

not like を使用して逆の一致条件を指定することもできます。

matches

正規表現による一致

not matches を使用して一致しない条件を指定することもできます。

contains

文字列が部分文字列を含んでいるかを判定します

not contains を使用して部分文字列が含まれていないことを確認できます。

recontains

いずれかの部分文字列が正規表現に一致するかを判定します

not recontains を使用して一致しないことを確認できます。

1.3.4. 関数

lineCount(content)

ファイル内容またはファイル内容の配列の行数を Integer として返します。content が配列の場合、結果は整数の配列になります。例: lineCount(Content)

sublines(content, start, count)

ファイル内容またはファイル内容の配列から、指定した開始行から指定行数の行を抽出し、連結した文字列として返します。content が配列の場合、結果は文字列の配列になります。

strlen(source)

文字列の長さを Integer として返します。source が文字列の配列である場合、結果は整数の配列になります。例: strlen(Name)

substr(source, start, count)

文字列または文字列の配列 から指定範囲の文字列を String 型で返します。source が文字列配列の場合、結果は文字列配列になります。例: substr(Name, 0, 3)

now()

現在の日時を Timestamp 型の値として返します。

today()

本日の日付を、日の始まりである 00:00:00.000 を表す Timestamp 型として返します。

startOfWeek(timestamp)

週の初日(日曜日)を返します。ロケールには依存しません。

startOfMonth(timestamp)

月の初日を返します。

startOfYear(timestamp)

年の初日を返します。

abs(value)

整数または整数の配列 の絶対値を返します。value が整数配列である場合、結果は整数配列になります。

allof(booleans)

ブール値の配列 のすべての要素が条件を満たす場合に true を返します。

allequal(array)

配列内のすべての値が等しい場合に true を返します。

1.3.5. 単位

ファイルサイズには以下の接尾辞を使用できます:

KB, MB, GB, TB

時間の長さには以下の接尾辞を使用できます:

weeks, week, w, days, day, d, hours, hour, hr, h, minutes, minute, min, m, seconds, second, sec, s, milliseconds, millisecond, msec, ms

1.3.6. 例

  • Size < 10KB - いずれかのファイルサイズが 10KB 未満

  • LeftSize >= 10MB - 左側のファイルサイズが 10MB 以上

  • allof(Size < 1MB) - すべてのファイルが 1MB 未満

  • abs(LeftSize - RightSize) < 1KB - サイズ差が小さい

  • DateStr = "2025-07-20" - その日に更新されたファイル

  • Date >= today() - 今日以降に更新されたファイル

  • AttrStr contains "R" - 読み取り専用ファイル

  • Name matches "file[0-9]\.txt" - ファイル名に正規表現を適用

  • Content contains "Test" - 内容に "Test" を含む

  • sublines(Content, 0, 1) contains "XML" - 1行目に "XML" を含む

  • (Extension = "log" and Size > 10MB) or (Date < today() - 7days) - 大きなログファイルまたは1週間以上前のファイル

  • AttrStr not contains "H" and Name like "*.tmp" - 非表示の一時ファイル

2. ファイルフィルターの使用

ファイルフィルターは、拡張子 fltのテキストファイルです。 これらは、フォルダー比較用の複数のフィルタールールを適用することを可能にします。 ファイルマスクと異なり、ファイルフィルターは、含むか除外、どちらかにマッチすることができます。

WinMergeは、たくさんの定義済ファイルフィルターをインストールします。 もし、必要なフィルターが、これらのファイルフィルターで提供されていなかったら、 自分自身で作成することができます。 タスクをもっと簡単にするために、WinMergeは、 FileFilter.tmplという名前のテンプレートも提供しています。 このセクションは、比較にファイルフィルターを適用する方法と、ファイルフィルターの文法を説明します。 「フィルターダイアログの使用」では、フィルターの追加、編集、管理方法について説明します。

2.1. ファイルフィルターの場所

WinMergeは、次の場所のファイルフィルターを自動的に検出します:

WinMerge インストールフォルダーのFilters フォルダー

ここには、定義済ファイルフィルターがインストールされています。例えば、 C:\Program Files\WinMerge\Filters。 システム上のすべてのユーザーに有効にするために、 ここにファイルフィルターを作成、または、コピーすることができます。

新しいファイルフィルターを作る前に、定義済フィルターに必要なものが含まれているか確認してください。 含まれていない場合、定義済ファイルの中から役立つルールが見つかるかもしれません。

デフォルトプライベートフィルターフォルダー

このフォルダーの場所は、WinMerge オプションの、システムページで定義されています。 デフォルトでは、あなたのユーザープロファイルフォルダーのサブフォルダーとして指定されています (Windows 10なら、Documents\WinMerge\Filters)。 通常、ここに作成、または、コピーされたフィルターは、 あなただけが見ることができます。 新しいファイルフィルターを作成したら、それらをプライベートにするために、 ここにコピーすることができます。

その他のフォルダーにあるファイルフィルターを適用する前に、 それらをインストールしなければなりません。

2.2. ファイルフィルターの適用

次のいくつかの方法で、ファイルフィルターを適用することができます:

  • ファイルまたはフォルダーの選択ダイアログから、フォルダー比較を起動した時:

    1. 1(左)2(右)のフォルダー選択後、 フィルターフィールドの隣にある 選択ボタンをクリックしてください。

    2. フィルターダイアログで、ファイルフィルターを選択し、 フィルターフィールドへロードするには、ファイルフィルタータブを使用します。

      注意

      ファイルフィルターが有効になっている(訳注: 何れかのファイルフィルターが選択されている状態)場合、選択されたファイルフィルターは、 フィルターフィールドへ既にロードされています。

    3. 比較操作を続けてください。操作を開始した時、 フィルターフィールドのファイルが適用されます。

  • フォルダー比較操作起動後(違うフィルターを適用した、 または、フィルターを無効にしてしまった時など)にファイルフィルターを変更するには:

    1. ツールフィルターをクリックしてください。

    2. フィルターダイアログで、新しいフィルターを設定し、 OKをクリックしてください。

    3. フィルターダイアログを閉じた時、新しいフィルターは自動では適用されません: フォルダー比較ウィンドウ中で新しい結果を見るには、 F5を押下してください。

  • WinMerge コマンドラインから、 フォルダー比較起動時にファイルフィルターを指定するには、 -fフラグを使用してください。

2.3. ファイルフィルターの文法

このセクションは、WinMerge ファイルフィルターの文法と、記述のためのガイドラインの提供について説明します。

コメント記号は、 ##です。 コメント記号の後にある、行内のすべての文字は無視されます。 WinMergeは、ルール中のほとんどの空白文字を無視します。 しかしながら、通常は、コメントの前に1つか複数の空白文字(スペースかタブ)が置かれるでしょう。 ルール中で、 ##を文字列として使用するには、後ろの空白文字を取り除いてください。

ファイルフィルターで、まずはじめに必要な2行は:

name

ファイルダイアログに表示されるフィルター名です

def

適用されるフィルタータイプです。次の値のうち、1つを指定してください:

include

指定されたルールにマッチしたアイテム以外はすべて含めます。

exclude

指定されたルールにマッチしたアイテム以外はすべて除外します。

excludeメソッドを選択した時は、サブフォルダーを指定するd(ディレクトリ)ルールも追加しなければなりません。このように、すべてのサブフォルダーを指定するのは、通常良いアイデアです:

d: \\*$ ## Subfolders

ティップ

これらの用語で混乱しないでください。ファイルフィルターのincludeルールは、「何を含めるか」を指定するわけではありません。「何を含めない」かを指定します。同様に、excludeルールは、「何を除外する」かを指定するわけではありません。「何を除外しないか」を指定します。

Next, your file should contain one or more filter rules. You can add as many rules as you like. There must be one rule per line, and each rule must be entirely on one line (no line breaks are allowed in a rule). A rule begins with a type designator, followed by either a regular expression or a filter expression. The supported type designators are:

f: 正規表現

Match file names using regular expressions

f!: 正規表現

Exclude files matching regex (Available since 2.16.19)

d: 正規表現

Match folder names using regex

d!: 正規表現

Exclude folders matching regex (Available since 2.16.19)

fe:

ファイルに対するフィルター式(例: fe:Size < 1KB)(2.16.49 以降で使用可能)

fe!:

ファイルを除外するためのフィルター式(2.16.49 以降で使用可能)

de:

フォルダーに対するフィルター式(2.16.49 以降で使用可能)

de!:

フォルダーを除外するためのフィルター式(2.16.49 以降で使用可能)

多くの正規表現の特殊文字の中で、次の文字は、ファイルフィルターでは特に重要です:

^ (行頭)

ルールが正しく動作するために頻繁に必要になります。

$ (行末)

ルールが正しく動作するために頻繁に必要になります。例えば:

\.c$ ## 拡張子 
              cのファイルのみにマッチします。
              \.c ## cppcomのような、拡張子が 
              cで始まるファイルにマッチします。
\ (エスケープ)

通常の文字を、特殊文字にマッチさせるために使います。 例えば、フォルダー名にマッチするために、 フォルダー区切り文字のバックスラッシュの前に、 バックスラッシュを置きます(\\)。 ファイル名中のドットにマッチするために、 バックスラッシュを指定し、その後にドットを置きます(\.)。

特殊文字やワイルドカードは、ファイル名とマッチさせるためには、使用されません。 ある型のすべてのファイル名にマッチするためには、単にファイル名を省略します。

ルールは、大文字・小文字を区別しません。例えば、 f: \.bat$は、 winmerge.batcompare.BATにマッチします。

例6 ファイルフィルタールールの例

シンプルなファイルフィルタールール:

f: \.cpp$ ## *.cppファイルにマッチ
          f: \.h$ ## *.hファイルにマッチ
          f: ^My ## My*.*ファイルにマッチ
          f: Dlg\. ## *Dlg.*ファイルにマッチ
          d: \\test$ ## testフォルダーにマッチ
          d: ^\\Build$ ## Buildフォルダーマッチ
          d: Temp$ ## *Tempフォルダーにマッチ (例:FirstTemp)
          d: Src ## *Src*フォルダーにマッチ

いくつかのルールは、もっと複雑な正規表現です:

          f: ^\.#.*$ ## .#filename.versionファイル
          f: Dlg\.c(pp)?$ ## *Dlg.c*Dlg.cppファイル
          f: ^I.*\.h$ ## I*.hファイル
          f: Srv[1-9]\.def$ ## *Srv1.def から *Srv9.defファイル
          f: ^[h,k,m] ## h*.*d、k*.*m*.*ファイル

3. 行フィルターの使用

ファイル比較で単一行を無視するために、行フィルターを使用することができます。 例えば、コメント、生成されたコードの決まった型や、 バージョン管理システムのタイムスタンプの様なものを無視するために、 行フィルターを使うかもしれません。各行フィルターは1つのルールです。 ファイル比較のために、たくさんの行フィルターを使用することができます。

フィルターの追加、編集、管理については、 「フィルターダイアログの使用」を参照してください。

3.1. 行フィルターの適用

次の方法で、行フィルターを適用することができます:

  • ファイルまたはフォルダーの選択ダイアログから、 ファイル比較を起動する場合

    1. 1(左)2(右)のファイル選択後、 フィルターフィールドの隣の 選択をクリックしてください。

    2. フィルターダイアログで、使用したい行フィルターを有効化するため、 また、現在どの行フィルターが有効かを確認するには、行フィルタータブを使います。

      注意

      フィルターフィールドは、 どの行フィルターが有効化されているかを表示しません。

    3. ファイル比較操作を続けてください。 操作を開始した時に、有効化された行フィルターが適用されます。

  • 既に、ファイル比較操作を起動後 (違うフィルターを適用した、または、フィルターを無効にしてしまった時など)は、

    1. ツールフィルターをクリックしてください。

    2. ファイルフィルタータブを開いてください。

    3. あなたが適用したい行フィルターの行にチェックしてください。 また、適用したくないフィルターは、チェックを外してください。

      新規編集削除ボタンを使用して、 フィルターを追加、編集、削除することもできます。

    4. 行フィルター機能を有効にするには、 行フィルターを有効にするにチェックしてください。 行フィルター機能を無効にするには、チェックを外してください。

    5. OKをクリックして、 ファイルフィルターダイアログを閉じてください。

    6. F5を押下して変更を適用し、 ファイル比較ウィンドウをリフレッシュしてください。

3.2. 行フィルターの文法

行フィルターは、行フィルタールールが有効化されている場合、 比較ファイル中の単一行の差異毎に評価されるルールです。 単一行の差異にルールがマッチした時、その差異は無視されます。

無視された差異は、ファイル比較ウィンドウ中では、 無視された差異の色(WinMergeオプションの色ページで定義されている) でマークされます。 これは、その他のタイプと無視された差異を区別できるようにします。 しかし、無視された差異は、選択やマージすることができません。

行フィルターマッチは、2つの考えに基づいて記述されるかもしれません:

  • ルールが、行のある部分にマッチした時、差異全体が無視されます。 つまり、行の一部だけをフィルターすることはできません。 例えば、2つのファイルに、次の単一行の差異があると仮定した場合:

    File1: 

    # Jean Sibelius

    File2: 

    # Janne Sibelius

    フィルターなしの場合、行は差異として検出されます。 しかし、行フィルターを ^#の式とともに適用する場合、その行は同一であると評価されます。 なぜなら、式は、両方のファイルにマッチする最初の文字のみを指定しているからです。

  • ルールは、すべての行にマッチした場合に、複数行差異に適用されます。例えば、次の2行の差異を考えてみてください:

    File1: 

    # Jean Sibelius
    # Pekka Himanen

    File2: 

    # Janne Sibelius
    Pekka Himanen

    同じ ^#ルールは、1行目にマッチしますが、2行目にはマッチしません。 したがって、差異は無視されません。

ティップ

パターンの正確さを制御するために、 行頭(^)と行末($) 記号を使用することは、大抵、良い習慣です。 なぜなら、式が、行のある部分にマッチした場合に、 ルールが適用されるからです。

例7 行フィルターサンプル

^MYTAG$

厳密に、 MYTAGにマッチする行をフィルターします

^::

::で始まる行をフィルターします

^/\*.*\*/$

/*で始まり、*/で終わる行をフィルターします

^[1-5]00

数字の、100、200、300、400、500 で始まる行をフィルターします


例8 CVS の Id 行にマッチする行フィルタールール

CVS の Id 行は、次の様なものです:

// $Id: Filters.xml 7591 2013-01-20 15:47:42Z christianlist $

そしてこれは、次のルールでフィルターできます:

^// \WId: .*\$

例9 poファイルの行コメントフィルター

poファイルの行コメントは、次の様なものです:

#: src/filename.c:766

そしてこれは、次のルールでフィルターできます:

^#

4. Using substitution filters

TBD

5. フィルターダイアログの使用

このセクションは、ファイルフィルターと行フィルターの作成・管理機能を提供する、 フィルターダイアログの説明をします。

フィルターダイアログを開くには、次の何れかの方法を使用してください:

  • ファイルまたはフォルダーの選択ダイアログで、 フィルターフィールドの右にある、 選択ボタンをクリックしてください。 フォルダー比較用のファイルフィルターを適用したい時は、方法を使用してください。

  • ツールフィルターをクリックしてください。 この方法は、ファイルまたはフォルダーの選択ダイアログを開いている時以外に使用可能です。

フィルターダイアログには、それぞれの WinMergeフィルター用のタブがあります:

ファイルフィルター

フォルダー比較用のファイルフィルターを設定するには、このタブを選択してください。

Line Filters

ファイル比較用の行フィルターを設定するには、こちらのタブを使用してください。

Substitution Filters

Choose this tab to work with substitution filters for file compare operations.

5.1. ファイルフィルタータブの使用

このタブの主要部分は、フォルダー比較用に利用可能なファイルフィルターの一覧です。 このリストは、共有、個人、そして、 「ファイルフィルターの場所」で説明されている、 WinMergeが知り得るインストール済みのファイルフィルターを含んでいます。

5.1.1. ファイルフィルターの有効化と無効化

ファイルフィルターが、フォルダー比較操作で、それを有効にすること、 また、フィルターが使用され始めてから、 現在のフィルターを止めるために無効にすることを可能にしなければなりません:

  1. まだ、フィルターダイアログを開いていない場合は、開いてください

  2. ファイルフィルターを選択、もしくは、リストから <なし>を選択しくてださい。

  3. OKをクリックして、 フィルターダイアログを閉じてください。

ファイルフィルターを有効にした後でそれらを適用する方法が、いくつかあります。 詳細は、 「ファイルフィルターの適用」を参照してください。

5.1.2. ファイルフィルターの設定

ファイルフィルターリストの管理と フィルターの新規作成には、これらのボタンを使用してください:

テスト

フィルターがどのように動作するか素早く確認するには、 リスト中のファイルフィルターを選択し、 テストをクリックしてください。 詳細は、 「ファイルフィルターのテスト」を参照してください。

インストール

ファイルフィルターを配置し、フィルターリストへ追加することができます。 ファイルフィルターは、それらをインストールしない限り、 共有フォルダー、デフォルトのプライベートフォルダーのどちらでも検出されません。

新規

共有フォルダーかプライベートフィルターフォルダーのどちらかに、 ファイルテンプレートの新しいコピーを作成します。 「ファイルフィルターの作成」で説明されているように、 テンプレートを編集、ルールの追加を行ってください。

編集

デフォルトエディターでファイルを開くには、リスト中のファイルフィルターを選択し、 編集をクリックしてください。

削除

ファイルを削除しリストから取り除くには、 リスト中のファイルフィルターを選択し、 削除をクリックしてください。 これで、本当にファイルは削除されました。

OKをクリックして、 フィルターダイアログを閉じた時、変更は保存されます。 行フィルターは、Windowsのレジストリに保存されます。

5.1.3. ファイルフィルターの作成

WinMergeにインストール済のファイルフィルターが、 お望みのフィルターを提供していないなら、あなた自身で作成することができます:

  1. ツールフィルターをクリックしてください。 または、ファイルまたはフォルダーの選択ダイアログから、 フィルターフィールドの右にある、 選択ボタンをクリックしてください。

  2. フィルターダイアログのファイルフィルタータブの、新規ボタンをクリックしてください。

  3. 共有/プライベートフィルターダイアログで、 共有フィルター、または、 プライベートフィルター (これらを何に使用するかは、 「ファイルフィルターの場所」を参照してください)を選択し、 OKをクリックしてください。

    お使いのシステムの共有、または、プライベートフォルダーが、 「新しいフィルターのファイル名を指定してください」ダイアログに開きます (プライベートフォルダーが存在しない場合は、WinMergeが作成します)。

  4. 「新しいフィルターのファイル名を指定してください」ダイアログで、 ファイル名を入力し 保存をクリックしてください。

    注意

    既存のファイル名を選ばないでください: 既存のファイルを編集するには、 2に戻って、 「新規」の代わりに、「編集」をクリックしてください。

    WinMergeは、新しいファイルを、テンプレート: FileFilter.tmplを用いて作成し、 デフォルトのテキストエディターでそれを開きます。

  5. テンプレートの編集は、テンプレートの指示に従って、 プレースホルダー名と説明の更新、 「ファイルフィルターの文法」で説明されている、 フィルタールールの追加を行ってください。 テキストエディターでファイルを保存してください。

    ティップ

    あなたが作成中のルールを、素早くテストしたい場合は、 フィルターダイアログの「テスト」ボタンをクリックしてみてください。 詳細は、「ファイルフィルターのテスト」を参照してください。

  6. 標準のフィルターフォルダーに、ファイルフィルターを作成したにも関わらず、フィルターダイアログがその新しいファイルフィルターを表示しない場合は、一度、OKをクリックしてダイアログを閉じてください。次に、ツールフィルターをクリックし、再度ダイアログを開いてください。ファイルフィルターリストは、新しいファイルフィルターを含んでいるでしょう。

    お使いのシステム上の、別の場所にファイルを保存した場合、 あなたがインストールしない限り、WinMergeは、それを検出することができません。 システム上のどこかにあるファイルフィルターを検出させるには:

    1. フィルターダイアログの インストールをクリックしてください。

    2. 「インストールするファイルフィルターの位置」ダイアログで、システム上の fltファイルを選択し、 開くをクリックしてください。 ファイルフィルターリストは、インストールされたファイルフィルターを含んでいるでしょう。

5.1.4. ファイルフィルターのテスト

新しいルール作成や既存のルールの理解を補助するため、 サンプルデータに対し素早くファイルフィルターをテストするには、 テストフィルターダイアログを使用してください。 それは、フルで比較操作を走らせるより簡単です。

フィルターダイアログから始めます:

  1. ファイルフィルタータブで、テストしたいファイルフィルターを選択してください。

  2. テストするルールを確認したい場合は、 編集をクリックしてください。 ファイルが開き、次のステップの間、内容を確認することができます。

  3. テストをクリックしてください。

  4. フィルターのテストダイアログで、テストするルールの型を選択してください:

    • ファイルフィルター中のファイルルール、 f:をテストするには、 フォルダー名オプションのチェックを外してください。

    • フォルダールール、 d:をテストするには、 フォルダー名オプションにチェックを入れてください。

  5. テスト用のテキストを入力してください。

    テキストは、テストするルールの型に適したものであるべきです。 例えば、フォルダー名オプションをチェックした場合、 あなたは「\temp」の様なフォルダー名を入力したいでしょう。

    結果欄は、入力したテキストを、 次のどちらかのステータスと共に表示します: passed、または、 failed

5.2. 行フィルタータブの使用

ファイル比較用の行フィルターの設定と有効化には、このタブを使用してください。 タブは、ルールの一覧を持っています。それぞれのルールは、1つの正規表現を含みます。 ファイル比較用に、リストから複数のルールを組み合わせて適用することができます。

5.2.1. 行フィルターの設定

下の 正規表現リストには、 いつでもルールの追加、編集、削除に使うことのできる、編集欄とボタンがあります。

新しいルールを追加するには:

  1. 新規ボタンをクリックしてください。 カーソルが自動的に編集欄へ移動します。

  2. 正規表現リストの下にある、編集欄に式を入力してください。

  3. 保存をクリックし、リストへ式を読み込んでください。

既存のルールを編集するには:

  1. 行を選択し、 編集をクリックしてください。

  2. 編集欄の式を編集してください。

  3. 編集が完了したら、保存をクリックしてください。

ルールを削除するには、ルールを選択(チェック)し、 削除ボタンをクリックしてください。

5.2.2. 行フィルターの有効化と無効化

  1. 正規表現リストで、 適用したいフィルターにチェックを入れ、適用したくないフィルターはチェックを外すだけです。

  2. 行フィルターを有効にするオプションに チェックを入れるか、外してください。 行フィルターを有効にした場合、 正規表現リストで、現在チェックされているすべてのルールが使用されます。 行フィルターを無効にした場合、たとえそれらがチェックされていても、ルールは使用されません。

  3. OKをクリックして、フィルターダイアログを閉じ、設定を保存してください。

それらを有効にした後にファイルフィルターを適用する、いくつかの方法があります。 詳細は、 「行フィルターの適用」を参照してください。

5.3. Using the Substitution Filters tab

TBD

5.3.1. Configuring substitution filters

TBD

5.3.2. Enabling and disabling substitution filters

TBD

6. 正規表現のヘルプ

正規表現は、非常に複雑になり得ます。幸い、WinMerge のほとんどのファイルフィルターは、このトピックの例からもわかるように、シンプルな範囲の表現です。 WinMergeと共にインストールされるフィルターファイルは、多くの役に立つ例を含んでいます。

最後に、Web上には、正規表現を手助けする、これらのサイトを含むたくさんの情報源があります: