grepコマンドはファイル内の検索だけじゃありません。コマンド結果(標準出力)だって検索・抽出できます。
Linux中級者以上になるとコマンド結果の抽出はよく使います。パイプ(|)がgrepコマンドの一部かと思うほど。
(じっさいは一部ではない。当たり前だけど。)
grepコマンドの検索は行単位です。
行の中に〇〇が含まれているか?
条件に合った行だけを抽出。
を行います。たったこれだけのコマンドです。
ファイル内検索
まずひとつは、ファイル内の検索です。grepコマンドの初級の使い方です。
option | オプション。 省略可。 |
pattern | 検索パターン。 正規表現も使える。 |
file_name | 検索するファイル名 |
例
test.txtファイル内で 'test01' のある行だけを抽出します。
他にもいろんなことができるのでこちらをどうぞ。
コマンド結果の検索
grepコマンドは、ファイル内の検索だけじゃありません。コマンドの実行結果(標準出力)もできます。
command | Linuxコマンド。 |
option | オプション。 省略可。 |
pattern | 検索パターン。 正規表現も使える。 |
パイプ(|)を使ってコマンド結果の検索を行います。grepコマンドではファイルを指定しないことに注意。
ファイルを指定するとコマンド結果は無視され、ファイル内検索の結果が出力されます。
Linuxの中級者以上は、ほぼ毎日使っているくらい当たり前の方法です。
例
CentOSにインストールされているパッケージからphpプログラム関連を抽出しています。
ちなみに、さっきのtest.txtの検索もできます。
ファイル内検索
よく使うオプション
grepコマンドでよく使うオプションをご紹介します。
-i | 大文字と小文字を区別しない。 |
-x | 行の完全一致。 |
-G | パターンに基本正規表現を使う。 |
-E | パターンに拡張正規表現を使う。 |
-v | パターンに一致しないものを抽出。 条件の逆が欲しいとき使う。 |
-r | ディレクトリ指定のとき、サブディレクトリも含める。 (再帰検索) |
-R | 再帰検索でシンボリックリンク先も含める。 |
例
例は、Laravelフレームワークで必要なphpプラグインが入っているか確認しています。
ほかにもいろんなオプションがありますが、普段使うのはこれくらいです。