IFS に格納されたストリーム・ファイルの中から、特定の文字列を検索したい場合がある。
例えば、以下のような場合である。
QShell
コマンドの grep
を用いることで、上記のような、特定の文字列を検索する処理を行うことが出来る。
grep パターン ファイル名 ...
grep
コマンドは、上記の構文に従って、「ファイル名」で指定されたファイル中から、
「パターン」で指定された文字列を検索し、画面に表示する。「ファイル名」を複数指定すると、
複数のファイル中から文字列を検索することが出来る。
1. HTMLファイル DSPDTA01.HTM中から、関数 chkInputValidity を参照している行を
全て抜き出す。
grep chkInputValidity DSPDTA01.HTM
2. カレント・ディレクトリーにあるすべてのHTMLファイル中から、関数 chkInputValidityを
参照している行を全て抜き出す。
grep chkInputValidity *.HTM
ここでは、シェルのワイルドカード展開を使って、カレント・ディレクトリーの全ファイルを指定している。
さて、上記の例 2 では、カレント・ディレクトリーに存在する全ファイルの内容を検索する方法をご案内した。
しかしこの方法では、サブ・ディレクトリー中にあるファイルは検索対象とはならない。
サブ・ディレクトリーをたどってファイルを検索していくには、 grep
コマンドに加えて、 find
コマンドの力も
必要となる。 find
コマンドについては、次回の記事で説明する。