【Linuxコマンド】grepで特定の文字列を抽出する方法

Linuxのコマンドには、ファイルに指定した文字列が存在するか確認するのに便利なgrepコマンドがあります。

この記事では、

  • grepコマンドとは
  • grepコマンドの書き方
  • grepコマンドのパターン別使い方
  • grepコマンドの主なオプション

について解説します。

grepは指定した文字列を抽出するのに非常に便利なコマンドですので、ぜひ使い方を覚えましょう!

目次

grepとは

shutterstock_230182939
「grep」コマンドはファイルに特定の文字列が存在するか検索するときに使われる便利なコマンドです。

例えば、ソースファイルの中に特定の変数が含まれているか調べたいとき、ファイルをいちいち開かずにgrepコマンドでファイル名のみ指定すれば文字列を検索することができます。

grepコマンドは書き方も簡単です。

$ grep 検索文字列 ファイル名

基本的にこの記述のみでファイルに指定した文字列が存在するか、検索することが可能です。

次項ではgrepコマンドの使い方を見ていきましょう。

grepの使い方

ここではgrepコマンドの使い方をパターン別に紹介します!

指定した文字列を抽出する

まずは一番オーソドックスな方法として、指定したファイルに特定の文字列が存在するか調べてみましょう。

この例では、ファイル「sample_01.txt」に”samurai”という文字列が含まれているか調べています。

$ grep samurai sample_01.txt

実行結果:
grep_image01

このように検索した文字列が存在する場合は、検索対象の文字列が表示されます。また、以下のように「ディレクトリ」を指定して、ディレクトリの中から検索文字列を含むファイルを検索することもできます。

$ grep samurai /tmp/test/*

実行結果:
grep_image02

この例ではディレクトリ「/tmp/test」の中に、指定した文字列が存在するかを確認しています。検索した文字列が存在した場合はファイルから表示されることがわかりますね!

複数のファイルから検索

「sample_01.txt」~「sample_05.txt」のような検索対象のファイルが複数存在する場合は、以下のように*(ワイルドカート)を使用すると便利です。

$ grep samurai sample_0*

実行結果:
grep_image03

このように「sample_0*」とすれば、sample_0を含むファイルを一気に検索することができますので便利ですね!

複数の文字列を検索

場合によっては複数の文字列を含む行があるか検索したい場合があります。

grepで複数の条件を指定したい場合は|(パイプ)でコマンドを繋げる方法があります。

$ grep 検索文字列1 ファイル名 | grep 検索文字列2

以下の例では、sample_0を含むファイルの中に”samurai”と”blog”が存在する行があるかを調べています。

$ grep samurai sample_0* | grep blog

実行結果:
grep_image04

このように複数条件も指定できることがわかりますね!

grepの主なオプション

ここでは、grepコマンドでよく使用する主なオプションについて紹介しますl

オプション説明
-cマッチした行数を表示する
-hマッチしたファイル名を表示しない
-i大文字小文字を区別しない
-nマッチした文字列の行番号を表示する
-sエラーメッセージを表示しない
-vマッチしない行を表示する

-cで行数を表示する

検索文字列が複数マッチした場合の行数を取得したい場合はオプション「-c」を使用します。

$ grep -c samurai sample_01.txt

実行結果:
grep_image05

マッチした行数が表示されていることが確認できます!

-nでマッチした行番号を表示する

検索文字列がマッチした場合、マッチした行番号を取得するにはオプション「-n」を使用します。

$ grep -n samurai sample_01.txt

実行結果:
grep_image6
マッチした文字列の行番号が表示されていることが確認できます!

Linuxについてもっと知りたい方へ

そもそもLinuxについて、

実はなんとなくしか理解していない…
Linuxを効率よく学習する方法が知りたい

といった情報を知りたい方は、以下の記事も参考にしてみてくださいね!



Linux入門者に必要な知識をすべて解説!おすすめサイトや本もご紹介
更新日:2024年11月15日

まとめ

ここでは、指定した文字列がファイルに存在するか検索するgrepコマンドの、

  • grepコマンドとは
  • grepコマンドの書き方
  • grepコマンドのパターン別使い方
  • grepコマンドの主なオプションと使い方


について解説しました。

Linuxで開発や運用を行う場合、膨大な数のファイルを管理することになると思います。そんなとき特定の単語が存在するか確認する場合、grepコマンドが役に立ちますので使い方についてはよく覚えておきましょう。

もしgrepコマンドの使い方を忘れてしまったら、この記事を参考にしてくださいね。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次