確認のみファイル・文字の検索

grepで文字を含む行を探したい

このページでできること

grep -nF でログ内の文字列を検索し、一致した行を行番号付きで表示します。入力例・出力例で -n と -F の意味を確認できます。

コマンド例

grep -nF 'error' ./app.log

入力例と検索結果

練習用の空のフォルダに、次の5行をテキストエディタで app.log として保存します。大切なログは上書きしないでください。そのフォルダで上のコマンドを実行します。

検索するファイル:app.log

info: startup complete
error: upload failed
ERROR: connection closed
info: retry scheduled
error: retry failed

表示される結果

2:error: upload failed
5:error: retry failed

先頭の 2: と 5: は元ファイルの行番号です。3行目の ERROR は大文字なので、この例の小文字 error には一致しません。元ファイルの内容は変わりません。

コマンドを分けて読む
部分意味
grep指定した文字を含む行を探し、その行全体を表示します。
-n元ファイルの何行目かを表示します。先頭行は1です。
-F検索語をそのままの文字列として扱います。たとえば . を「任意の1文字」という正規表現の意味にしません。
'error'探したい文字です。行全体との完全一致ではなく、行の一部に含まれていれば一致します。
./app.log現在のフォルダにある検索対象のファイルです。

ERROR も含めて探す場合

grep -niF 'error' ./app.log

-i を足すと英字の大文字・小文字を区別せず、この例では2・3・5行目が表示されます。

何も表示されない場合

一致する行がないと、何も表示せず入力待ちに戻ります。検索語のつづり・大文字小文字・対象ファイルを確認しましょう。このページの検索例では、GNU grep の終了ステータス(処理結果を表す数字)は一致ありなら0、一致なしなら1、読み取りエラーなどでは2です。一致なしはファイル破損を意味しません。

GNU公式:終了ステータスの意味(英語)

フォルダ全体の中身を調べるなら フォルダ内の文字を探す方法、ファイル名を調べるなら 名前でファイルを探す方法 を参照してください。

使い方を順番に確認する練習を始めるときは、この手順に沿って進めます

使い方

  1. Linuxのターミナルを開き、pwd と ls で現在地・対象を確認します。
  2. 例に出てくるファイル名・フォルダ名を、自分の環境に合わせます。読み取り・検索・コピー・移動の対象は、実際に存在するものを指定してください。
  3. 下の注意点を読んだうえでコマンドを入力し、Enterで実行します。

実行するとどうなる?

grep -nF でログ内の文字列を検索し、一致した行を行番号付きで表示します。入力例・出力例で -n と -F の意味を確認できます。 このコマンド例はファイルの内容を変更しません。

注意点

-F は正規表現ではなく文字列として検索します。大文字と小文字は区別されます。

権限に関する注意:アクセス拒否の原因を調べずに、管理者権限や sudo で実行しないでください。

うまくいかないときに確認するエラーや想定と違う結果が出たときの確認ポイント

うまくいかないとき

「No such file or directory」が出たら、現在地・名前・大文字と小文字を確認します。「Permission denied」が出たら、自分が操作してよい場所か確認してください。原因を調べずに sudo を付けないでください。

対象環境:GNU/Linux・Bash。環境やバージョンによって表示が異なる場合があります。

公式マニュアルで詳しく確認する(英語)

同じカテゴリのコマンド

コマンド一覧に戻る