17
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【必須】grepコマンドを使いこなす

Last updated at Posted at 2021-09-07

grepコマンドとは、linuxのコマンドです。
基本はファイルの中の「文字列(パターン)」が含まれている行を表示するコマンドです。

#grepコマンドを使う場面
・ファイルの中に特定の文字が含まれている行を抽出する時
・文字列がどのファイルにあるかを探す時

##基本の使い方

$grep [オプション] 文字列 ファイル名

##よく使う方法

例1  errorという文字がある全ファイルを抽出する

$ grep error ./*

※複数のファイルから検索するためにワイルドカード(*)を利用します。


例2 postディレクトリの中にある全てのerrorという文字列を抽出する

grep error post/*

例3 現在いるディレクトリは以下の全ファイルからerrorがあるファイルを検索する。なお、

grep -rl error .

※最後のドットは現在いるディレクトリ配下の全ファイルが検索対象という意味
※-rlオプションはディレクトリの中も検索し、結果はファイル名のみ表示します。


複数の文字列を探す方法
①②ともに含まれているファイルを探す

grep ①検索文字列 ファイル名 | grep ②検索文字列

##よく使うgrepコマンドのオプション

-C
検索結果に一致した箇所から前後に指定した行数表示する

-i
大文字と小文字を区別せず検索する

-e
一致処理に指定した正規表現を使う

$ grep –e p –e e post/*

【補足】-eオプションは一致処理に指定した正規表現を行うオプションだが、実際には、または(or)の検索を行うときに使われる。
ちなみに上記コマンドは、-eオプションを利用し、postディレクトリ内のファイルすべての中から小文字のp、またはeのいずれかを検索できるようにするコマンドです。

-v
一致しないものを検索する

-l
検索結果にファイル名のみ表示する
【使用用途】ファイルのリストを作りたい時

-r
ディレクトリ内も検索対象とする
例 postディレクトリ内のさらに下層のディレクトリ内のファイルすべての中からaの文字を検索するコマンド

$ grep -r a post/*

・特定のディレクトリを除く場合

現在いるディレクトリから cartの文字が入っているディレクトリを検索する方法
その際に、vendorディレクトリを除いて検索しております。

grep -rl cart ./ --exclude-dir=vendor

vendorとstorageディレクトリを除いております。

grep -rl cart ./ --exclude-dir={vendor,storage}

grepコマンドは使いこなせないと厳しいです。
少しでもご参考になれば幸いです。

参考記事
https://qiita.com/YASU_ojisan/items/8225c87acb4e1468dc90

17
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?