grepコマンドで覚えておきたい使い方14個
LinuxやUnixを使っていく上で、どんなに経験が浅くても一度は利用するgrepコマンド。
今回は、このgrepコマンドで覚えておきたい使い方について紹介する。
なお、ここで扱うgrepコマンドはLinuxのものをベースに記述している。商用UNIXやBSD等の場合、オプションなどが異なる事があるので注意。
1.基本の使い方
まずは基本的な使い方から。
テキストファイルから特定の文字列を含む行のみ出力する。
# grep 検索したい文字列 検索したいテキストファイル
ワイルドカードを用いる事で、複数のファイルを指定してgrepを行う事も出来る。
コマンドの出力結果から検索する場合は、「|(パイプ)」を利用する。
# コマンド | grep 検索したい文字列
2.複数の条件でor検索する
複数の条件で検索を行う場合、eオプションを付与する。
# grep -e 検索したい文字列1 -e 検索したい文字列2 検索したいテキストファイル
3.大文字・小文字を区別しないで出力させる
通常、grepはアルファベットの大文字、小文字を区別して検索している。
これを区別させないようにするには、iオプションを付与する。
# grep -i 検索したい文字列 検索したいテキストファイル
4.特定の文字列を持つ行を除外して出力する
特定の文字列を持つ行を除外するには、vオプションを用いる。
# grep -v 除外したい文字列 検索したいテキストファイル
5.検索にヒットする前後の行を出力させる
Linuxで利用出来るgrepでは、検索でヒットした行の前後の行を出力させることも出来る。
前の行を出力する場合はBオプションを、後の行を出力させる場合にはAオプションを付与する。
●検索にヒットした前の行を出力する場合
# grep 検索したい文字列 -B 出力したい行数 検索したいテキストファイル
●検索にヒットした後の行を出力する場合
# grep 検索したい文字列 -A 出力したい行数 検索したいテキストファイル
前後の行を同時に出力したい場合は、Cオプションを付与する。
# grep 検索したい文字列 -C 出力したい行数 検索したいテキストファイル
6.検索にヒットする行数を取得する
検索にヒットする行数を取得するには、cオプションを付与する。
# grep -c 検索したい文字列 検索したいテキストファイル
7.ファイルの行番号を出力する
ファイルの行番号を追加して出力するには、nオプションを付与する。
# grep -n 検索したい文字列 検索したいテキストファイル
8.フォルダ内のファイルを再帰的に指定する
フォルダ内にあるファイルを、サブディレクトリも含めて再帰的に指定、検索する場合は、rオプションを用いる。
# grep -r 検索したい文字列 検索したいファイルのあるディレクトリ
9.独立した文字列をもつ行のみを出力させる
grepでは、例えばadで検索するとaddressやmadといった、別の意味を持つ単語も引っかかってしまう。
これらを排除するには、wオプションを付与する。
# grep -w 検索したい文字列 検索したいファイル
10.圧縮ファイルを検索する
圧縮ファイルの中を検索し、キーワードに該当するかを確認するには、zgrepコマンドという、圧縮ファイルに対応したコマンドを用いる。
# zgrep 検索したい文字列 検索したいファイル
詳細については、こちらを参照してもらいたい。
11.複数のキーワードをパターン化したファイルを読込み、合致した行を出力する
grepでは、複数の検索キーワードをパターンとしてまとめたファイルを作成しておき、そのファイルに記述されているキーワードに合致した内容を出力させる事が出来る。
それには、fオプションを用いる。
# grep -f 検索パターンを記述したファイル 検索したいファイル
12.検索キーワードを持つファイルのリストを取得する
検索キーワードを持つファイルのリストを取得するには、lオプションを用いる。
# grep -l 検索パターンを記述したファイル 検索したいフォルダ/*
13.正規表現で検索を行う
grepでは、正規表現を利用することが出来る。
利用出来る正規表現については、こちらを参照すると良いだろう。
14.psコマンドにgrepした時に、grepのプロセスを表示させないようにする
psコマンドの出力結果に対しgrepを行う場合、そのgrepのプロセスも表示されてしまう。
これを出力させないようにするには、以下のようにする。
# ps -ef | grep [検索ワードの一文字目]二文字目以降