はじめに
Linuxを使っていると、ほぼ確実に登場するのが grep コマンド。
こんな感じで使っている人は多いと思いますが、
-
grepってそもそも何をしているの?
-
なぜ
| grepがこんなによく出てくるの? -
どういう仕組みで動いているの?
ここを ちゃんと理解している人は意外と少ない 印象です。
この記事では、
-
grepの役割
-
標準入力との関係
-
パイプと組み合わせて使われる理由
-
LinuC試験にも出てくる理由
を、初心者目線で解説します。
grepとは何をしているコマンド?
まずは一言で。
grepは、文字列の中から条件に一致する「行」だけを抜き出すコマンド
ポイントは 「行単位で処理する」 という点。
grepの基本的な動き
-
テキストを受け取る
-
1行ずつチェックする
-
指定した文字列を含む行だけを出力する
例えば:
これは、
-
log.txtの中身を1行ずつ見て -
errorが含まれている行だけを表示する
という意味になります。
grepは「標準入力」を受け取れるコマンド
grepを理解するうえで一番大事なのがここ。
grepは
ファイルだけでなく、標準入力からもデータを受け取れる
という特徴があります。
標準入力って何?
簡単に言うと、
コマンドが「外から受け取る入力」
です。
キーボードからの入力だけでなく、
別のコマンドの出力も標準入力として受け取れます。
「| grep」がよく使われる理由
ここで登場するのが パイプ(|)。
この処理の流れを分解すると、
-
lsがファイル一覧を表示(標準出力) -
|がその出力を次のコマンドに渡す -
grepが受け取った内容からphpを含む行だけを表示
つまり、
grepは「渡された出力を絞り込むフィルタ」
として使われている、ということ。
grepは「フィルタ役」として使われる
Linuxコマンドは、
-
情報を全部出すコマンド
-
必要なものだけ抜き出すコマンド
を組み合わせて使う文化があります。
grepはその中で、
必要な行だけを残す役割
を担っています。
例えば:
これは、
-
プロセス一覧を全部出して
-
nginxに関係する行だけを表示する
という実務でも超よくある使い方。
👉
「全部は要らない。これだけ見たい」
という場面で grep が活躍します。
※ パイプの仕組み自体については、別記事で詳しく解説しています。
grepはなぜLinuC試験に出てくるのか
LinuCでは、
-
標準入力
-
標準出力
-
パイプ
-
テキスト処理
といった Linuxの基本思想 が問われます。
grepは、
-
標準入力を受け取れる
-
出力をそのまま次に渡せる
-
テキスト処理の代表例
という理由で、試験でも頻出です。
「grepは文字列検索のコマンド」
で終わらせず、
何を受け取って、何を返しているのか
を理解しておくと、試験でも実務でもかなり楽になります。
よく使うgrepオプション(まずはこれだけ)
初心者が最初に覚えておくと便利なものだけ紹介します。
-i:大文字小文字を区別しない
error / Error / ERROR を全部拾ってくれます。
-v:一致しない行を表示する
特定の行を「除外したい」時に使います。
-n:行番号を表示する
設定ファイル確認でよく使います。
-r:ディレクトリ配下を再帰的に検索
プロジェクト全体から文字列を探したい時に便利。
grepを理解するとLinux操作が楽になる
grepは単体でも便利ですが、
-
パイプ
-
標準入力・標準出力
-
リダイレクト
と組み合わせることで本領を発揮します。
「とりあえず | grep してた」状態から
「なぜこれで動くのか分かっている」状態になると、
Linux操作のストレスが一気に減ります。
まとめ
-
grepは「文字列を含む行だけを抜き出すコマンド」
-
ファイルだけでなく標準入力も受け取れる
-
| grepは出力を絞り込むためによく使われる -
grepはLinuxの基本概念が詰まったコマンド
-
LinuC対策としても理解必須
まずは
grepを“使える”ではなく“説明できる”状態を目指すのがおすすめです。


コメント