CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

ソフト開発

WinMergeで複数拡張子を対象とするファイルフィルタと簡単な行フィルタ指定をやってみた

投稿日:

WinMergeでファイル比較することは、SEだったらみんなやっていることと思う。でもファイルフィルタと行フィルタは使ったことがないと思う。おいらだって、何年もWinMergeを使ってきたけど、正規表現がさっぱりわからんから使ったことなかった。いや、デフォルトで用意されているファイルフィルタの「Visual C++ loose」なんかは使ったことあった。それが拡張子fltのテキストファイルで、正規表現で中身をいじれば思うようなことができることは知っていた。いかんせん、正規表現という小難しそうなルールに対して高いハードルを感じていて、もう一歩アプローチできなかったのだ。えらそうにこんな記事を書いてはいるものの、どっかのサイトの受け売りで書いただけだった。
WinMegeのフィルタについて今すぐ知りたいならココを読め

ということで、今回は初歩的かつ誰もがやりたがるであろう簡単なフィルタを作ってみることにした。

1.ファイルフィルタで複数の拡張子を指定する方法
フィルタ指定のところの初期値は「*.*」となっている。「*.txt」とすれば単一の拡張子指定ができることはわかっているが、複数拡張子を指定するべく「*.txt;*.csv」なんて指定しても無駄。DFという名のフリーソフトだったらできることだが、WinMergeではできましぇん。

よって、ファイルフィルタをつくる必要性が出てくる。以下に拡張子fltのファイルをそのまま記載する。ファイルそのものをダウンロードするならここをクリック。
## This is a directory/file filter template for WinMerge
name: txtとcsvを対象
desc: 複数拡張子を指定するテスト

## Select if filter is inclusive or exclusive
## Inclusive (loose) filter lets through all items not matching rules
## Exclusive filter lets through only items that match to rule
## include or exclude
def: exclude

## Filters for filenames begin with f:
## Filters for directories begin with d:
## (Inline comments begin with ” ##” and extend to the end of the line)
f: \.txt$
f: \.csv$

nameとdeskは、ファイルフィルタ一覧に出る名称と説明。
defは、includeかexcludeの選択。指定したものだけを対象にするならexcludeで、指定したものを除外するならinclude。
f:はファイル名指定で、「.txt」が末尾にあるファイルを対象とする。末尾を表すのが$で、.を表現するにはその前に\を書くので\.となる。
他にd:という指定があってフォルダ名を指定することができるがここでは不要。

2.行フィルタで前方一致の行を除く
^abc
先頭を表すのが^(山型)で、abcから始まる行という意味になる。
行フィルタは、ファイルフィルタのようにファイルを用意することがなくダイアログから値を入力して使う。

3.行フィルタで後方一致の行を除く
xyz$
後方を表すのが$(ドル)で、xyzで終わる行という意味になる。

4.行フィルタで前方一致と後方一致の両方で行を除く
^abc.*xyz$
2と3の組み合わせだが、そのあいだに.*(ドットとアスタリスク)が入っている。
.*によって、その位置に何か文字があるかもしれないという意味になる。
ドット:(空白文字以外の)なんでもよい文字
アスタリスク:直前のパターンが0回以上の繰り返し(0回を含むので何もなくてもよい)

このあたりが、正規表現の難しいところだな。
正規表現については、本が1冊書けるくらいの複雑な仕組みらしい。その全貌を知る必要はなく、最低限のことを把握すればよい。近々以下のサイトで勉強してみようかね。
正規表現とは?

-ソフト開発

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

VC2015のプロジェクトを久しぶりにビルドしたらエラーになったけど。。

エラーはこんな感じ。

Pythonでプロポーショナルフォントかどうかをチェックする

PythonからWin32APIを呼び出すには、ライブラリpywin32を使う必要がある。 けっこうな数のWin32APIを使えるのはいいんだけど、使い方にくせがあってしかもネットに情報がないので、以 …

no image

SE

妻に勧められて、この本を呼んでみました。 SEのフシギな生態―失敗談から学ぶ成功のための30ヶ条 作者: きたみ りゅうじ 出版社/メーカー: 幻冬舎 発売日: 2005/12 メディア: 文庫 一言 …

no image

複数ファイルの名前やパスを取得するのに便利なフリーソフト

ファイル名の一覧を作りたいときに使えるものはこれだ。 NameToClipboard64 インストーラは付いていないが、以下の簡単な操作でセットアップができる。 1.zipをダウンロード後解凍して適当 …

PDFアレコレで画面の拡大・縮小・移動ができるようにした

PDFアレコレをバージョンアップ。約4か月ぶり。 Ver3.05 2021/6/20 ・PDFの描画位置を左右上下にセンタリングするようにした(以前は左上)。 ・Ctrl+マウスホイール上下操作によっ …