MIFES TIPS〜実践テクニック集〜TIPSトップ
ファイル比較 検索・置換 グローバル検索・置換 文字コード 巨大ファイル 行(CSV)の整形 正規表現

グローバル検索・置換機能の概要

(1)【グローバル検索(grep)】

【グローバル検索(grep)】は複数ファイルの中から指定した文字列を含む行を検索して、結果をリストに出力する機能です。
検索文字列を3つまで指定でき、検索の条件も指定できるため、AND検索やOR検索など、複雑なテキスト検索にも利用できます。

結果リストは「グローバル検索結果ウィンドウ」か「リストウィンドウ」に出力でき、リストをダブルクリックするとファイルを開き文字列の位置へカーソルがジャンプします。
結果リストの書式を変更すると、レコード(行)の抽出などにも利用できる便利な機能です。

バイナリファイルを対象にしたバイナリ検索もでき、同様に結果リストからダブルクリックで検索位置へジャンプできます。
ただし、バイナリ検索の結果リストには「行」ではなく、ファイルの先頭からのバイト位置が出力されます。

G検索 イメージ図

(2)【グローバル置換】【グローバル複数置換】

【置換】または【複数置換】を、複数ファイルに対して行う機能です。

「文字列を置き換える」という機能ですが、フォルダ内のすべてのファイル内に書かれたパス名やタグ、変数名や関数名をすべて変更したり、特定の文字列を一斉に削除したりといった作業にも利用できます。

G置換の確認

【置換】機能と同様「確認あり」置換も行えます。
実行時に右のような「グローバル置換の確認」ウィンドウが表示され、ボタンをクリックして動作を選択できます。

また、置換ログを出力しておくと、実行後正しく修正できたかの確認ができます。

※関連情報:テキストエディタのgrep機能



“MIFES”があって“for Windows”がない行を探す

【グローバル検索(grep)】機能の詳細ダイアログボックスには、「検索の条件」という設定があり、これによりANDやORに相当するテキスト検索も行えます。
検索文字列の「文字列1」に「MIFES」、「文字列3」に「for Windows」を入力して、検索の条件を「3を含まず他のすべてを含む行を探す」にしてください。

G検索 詳細ダイアログ

G検索 簡略ダイアログなお、【グローバル検索(grep)】のダイアログボックスには、簡略ダイアログボックスと詳細ダイアログボックスがあり、ここで紹介したような検索は詳細ダイアログボックスで行えます。

右図のような簡略ダイアログボックスが表示されている場合は、左下にある[詳細>>]ボタンをクリックして詳細ダイアログボックスに切り替えてください。

 



昨日変更したファイルだけ検索したい

詳細ダイアログボックスの「タイムスタンプ条件」で、リストから「以下の指定期間に更新したファイル」を指定し、昨日の0時から23時59分までを指定します(右図@)。

なお、タイムスタンプ条件では「最近24時間に更新したファイル」という指定もできます。こちらは24時間前から現在までに更新したファイルが検索対象となります。


開いているファイルだけ検索したい

詳細ダイアログボックスの、「開いているファイル」を「すべてを検索」に、「開いてないファイル」を「検索しない」にそれぞれ指定します(右図A)。

ここでいう「条件に合致→検索」の「条件」とは、検索位置、ファイル名/ワイルドカード、タイムスタンプ条件すべてを指します。

カレントウィンドウだけを検索したい場合は、「検索位置」のリストから「カレントファイルのみを検索」を選択してください。

G検索 詳細ダイアログ

検索文字列を色替え表示する

検索機能において、検索できた文字列をすべて色替え表示することができ、この機能をMIFESでは「一斉表示」といいます。

「検索」ダイアログボックスと同様、「グローバル検索(grep)」ダイアログボックスにも「一斉表示」チェックボックスがありますので、チェックをつけて実行してください。

一斉表示した画面 【グローバル検索(grep)】の簡略ダイアログボックス
G検索 一斉表示ON G検索 簡略ダイアログ

なお、「一斉表示」にチェックをつけずに実行した後でも、以下の方法で一斉表示ができます。

●「グローバル検索結果ウィンドウ」に結果を出力した場合

ガイドラインの[一斉表示OFF]ボタンをクリックします。
グローバル検索結果ウィンドウと、ジャンプ先のウィンドウが一斉表示ONの状態になります。

●リストウィンドウに結果を出力した場合

結果を出力したリストウィンドウ上で右クリックし、メニューの【ジャンプ先で一斉表示】を選択します。
ジャンプ先のウィンドウが一斉表示ONの状態になります。

G検索 ガイドライン リストウィンドウ 右クリックメニュー

レコードの抽出ができる?

例えば、「CSV形式のデータの中からある文字列を含むレコード(行)を取り出したい」など、【グローバル検索(grep)】は行の抽出にも利用できます。
グローバル検索結果の出力書式を「行の内容」に変更して実行してください。


G検索 出力書式の変更ダイアログ出力書式は、詳細ダイアログボックスの[書式]ボタンをクリックして表示される、「グローバル検索の出力書式の変更」ダイアログボックスで変更できます。

行の内容を取り出したいときは、「出力の書式」を「%s」に変更してください。

 

※1行が1750バイト以上の行は、抽出できません。
FAQ:【グローバル検索(grep)】で行抽出が途中までしかできない もご参照ください。



「グローバル検索結果ウィンドウ」だけ閉じる

【グローバル検索(grep)】を「グローバル検索結果ウィンドウ」に出力する設定で繰り返し実行すると、「グローバル検索結果ウィンドウ」がたくさん開いてしまいます。

残念ながら、 これらのウィンドウを一括で閉じる機能はご用意していませんが、この操作を行うマクロコマンドを下記ページで公開しておりますので、ダウンロードしてご利用ください。
開いているすべての「グローバル検索結果ウィンドウ」 のうち、変更されていないウィンドウをすべて閉じます。

マクロガイド > マクロソースのダウンロードのページ「M32 gclose.mac」



実行ボタンを押してしまった

G置換 中止ウィンドウ【グローバル検索(grep)】【グローバル置換】【グローバル複数置換】とも、[中止]ボタンを含むウィンドウが表示されている場合はウィンドウ内の[中止]ボタンをクリックしてください。

ウィンドウなどが表示されておらず[中止]ボタンをクリックできない場合などは、[Esc]キーまたは[Pause]キーを押すと中止できます。



置換ログにはどんな情報が記録されるの?

【グローバル置換】または【グローバル複数置換】で、『置換ログをMIWフォルダ上の「GREPLOG.LOG」に書き出す』にチェックをつけておくと、ログファイルが作成されます。

G置換 置換ログを書き出す

ログファイルには置換を行った位置がタグジャンプ書式で出力されますので、ログファイルから【タグジャンプ/バックタグジャンプ】機能で置換が行われた箇所にジャンプして、置換できたことを確認することができます。

また、対象ファイルがなかった場合や旧文字列が見つからなかった場合など、1度も置換を行わなかった場合にはログファイルは作成されません。

G置換 ログからのタグジャンプ


 
↑MIFES TIPSトップ
↑テキストエディタ MIFES 製品情報