grepとは何をしているコマンド?標準入力とパイプの関係をやさしく解説




はじめに

Linuxを使っていると、ほぼ確実に登場するのが grep コマンド。

ps aux | grep nginx
ls | grep php

こんな感じで使っている人は多いと思いますが、

  • grepってそもそも何をしているの?

  • なぜ | grep がこんなによく出てくるの?

  • どういう仕組みで動いているの?

ここを ちゃんと理解している人は意外と少ない 印象です。

この記事では、

  • grepの役割

  • 標準入力との関係

  • パイプと組み合わせて使われる理由

  • LinuC試験にも出てくる理由

を、初心者目線で解説します。


grepとは何をしているコマンド?

まずは一言で。

grepは、文字列の中から条件に一致する「行」だけを抜き出すコマンド

ポイントは 「行単位で処理する」 という点。

grepの基本的な動き

  1. テキストを受け取る

  2. 1行ずつチェックする

  3. 指定した文字列を含む行だけを出力する

例えば:

grep error log.txt

これは、

  • log.txt の中身を1行ずつ見て

  • error が含まれている行だけを表示する

という意味になります。


grepは「標準入力」を受け取れるコマンド

grepを理解するうえで一番大事なのがここ。

grepは
ファイルだけでなく、標準入力からもデータを受け取れる
という特徴があります。

標準入力って何?

簡単に言うと、

コマンドが「外から受け取る入力」

です。

キーボードからの入力だけでなく、
別のコマンドの出力も標準入力として受け取れます。


「| grep」がよく使われる理由

ここで登場するのが パイプ(|)

ls | grep php

この処理の流れを分解すると、

  1. ls がファイル一覧を表示(標準出力)

  2. | がその出力を次のコマンドに渡す

  3. grep が受け取った内容から php を含む行だけを表示

つまり、

grepは「渡された出力を絞り込むフィルタ」

として使われている、ということ。


grepは「フィルタ役」として使われる

Linuxコマンドは、

  • 情報を全部出すコマンド

  • 必要なものだけ抜き出すコマンド

を組み合わせて使う文化があります。

grepはその中で、

必要な行だけを残す役割

を担っています。

例えば:

ps aux | grep nginx

これは、

  • プロセス一覧を全部出して

  • nginxに関係する行だけを表示する

という実務でも超よくある使い方。

👉
「全部は要らない。これだけ見たい」
という場面で grep が活躍します。

※ パイプの仕組み自体については、別記事で詳しく解説しています。


grepはなぜLinuC試験に出てくるのか

LinuCでは、

  • 標準入力

  • 標準出力

  • パイプ

  • テキスト処理

といった Linuxの基本思想 が問われます。

grepは、

  • 標準入力を受け取れる

  • 出力をそのまま次に渡せる

  • テキスト処理の代表例

という理由で、試験でも頻出です。

「grepは文字列検索のコマンド」
で終わらせず、

何を受け取って、何を返しているのか

を理解しておくと、試験でも実務でもかなり楽になります。


よく使うgrepオプション(まずはこれだけ)

初心者が最初に覚えておくと便利なものだけ紹介します。

-i:大文字小文字を区別しない

grep -i error log.txt

error / Error / ERROR を全部拾ってくれます。


-v:一致しない行を表示する

grep -v root /etc/passwd

特定の行を「除外したい」時に使います。


-n:行番号を表示する

grep -n nginx config.conf

設定ファイル確認でよく使います。


-r:ディレクトリ配下を再帰的に検索

grep -r "DB_HOST" .

プロジェクト全体から文字列を探したい時に便利。


grepを理解するとLinux操作が楽になる

grepは単体でも便利ですが、

  • パイプ

  • 標準入力・標準出力

  • リダイレクト

と組み合わせることで本領を発揮します。

「とりあえず | grep してた」状態から
「なぜこれで動くのか分かっている」状態になると、
Linux操作のストレスが一気に減ります。


まとめ

  • grepは「文字列を含む行だけを抜き出すコマンド」

  • ファイルだけでなく標準入力も受け取れる

  • | grep は出力を絞り込むためによく使われる

  • grepはLinuxの基本概念が詰まったコマンド

  • LinuC対策としても理解必須

まずは
grepを“使える”ではなく“説明できる”状態を目指すのがおすすめです。

コメント

タイトルとURLをコピーしました