テキストエディタで、特定のディレクトリ配下にある複数テキストファイルを検索しその中の文字列を検索できちゃうんです。
更に検索だけでなく置換までもできます。もう1ファイルずつ開いて編集する日々とはおさらばしましょう。
困りごと
この記事で以下のことが解決します。
- 複数テキストファイル内に文字列が存在するか知りたい
- 複数テキストファイル内の文字列を一括で置換したい
解消方法
サクラエディタのGrep検索、Grep置換機能を使用することで解消できます。
使用方法は以下の通りです。
- サクラエディタのメニュー「検索」-「Grep」で検索ウィンドウが起動 (Ctrlキー + Gキー 押下と同等)
- サクラエディタのメニュー「検索」-「Grep置換」で置換ウィンドウが起動 (ショートカットキー無し)
Grep置換のショートカットキー無しについてですが、あえてそうしていると意図を感じます。一括で複数ファイルを編集という機能のため、置換されたものは即時保存されます。
つまり、作業を戻す手段がないため誤起動を極力させないためだと思います。
各ケースの対応方法
複数テキストファイル内に文字列が存在するか知りたい
以下の複数テキストファイルの中に”hoge”という文字列を検索する場合です。
A.txt
(A.txtは、C:\DIR_TEST\hoge1\hoge1-1に存在しています)
B.txt
(B.txtは、C:\DIR_TEST\piyo1に存在しています)
サクラエディタを起動後、サクラエディタのメニュー「検索」-「Grep」を選択(Ctrlキー + Gキー 押下)します。
そして、Grep検索ウィンドウで以下を設定し、検索してみましょう。
サブフォルダからも検索するにチェックを付け、フォルダには最上位となるディレクトリ(今回のケースだと”C:\DIR_TEST”)を指定します。
検索実行した結果は以下のようになります。
検索結果の形式としては、
[ファイルパス]([行]、[列]) [エンコード]:[1行分の文字列]
が表示されます。
上記の検索結果は、結果出力形式で「ノーマル」が選択された場合でしたが、「ファイル毎」を選択した場合の結果も見てみましょう。
Grep検索ウィンドウで以下を設定し、検索してみましょう。
検索実行した結果は以下のようになります。
“■”の行でファイル情報が表示されており、”・”の行で各行の情報が表示されます。
複数テキストファイル内の文字列を一括で置換したい
複数テキストファイルの中に”hoge”という文字列を”piyo”に置換する場合です。ファイルは上記ケースと同じファイルを使用します。
サクラエディタを起動後、サクラエディタのメニュー「検索」-「Grep置換」を選択します。
Grep置換ウィンドウで以下を設定し、置換してみましょう。
置換前に”hoge”を指定し、置換後に”piyo”を指定しています。
置換結果は以下のようになります。
置換結果としては置換される前の文字列が表示されています。
各ファイル内容を確認してみましょう。
A.txt
B.txt
どちらのファイルも”hoge”が”piyo”に置換されたことが確認できました。
まとめ
- 複数テキストファイルから文字列を探し出すにはGrep検索
- 複数テキストファイルから文字列を置き換えるにはGrep置換
ちなみに、正規表現の使用も可能で併用できると非常に強力なツールとなります。正規表現については以下の記事を参照ください。

コメント メアドは任意