【初心者必見】grepとは?grepでの検索についての紹介
目次
grepとは?
grepコマンドは、ファイル内のテキストを検索するために使用されます。
特定のパターンや文字列を検索して、その結果を表示することができます。
grep構文
grepの基本構文です
grep [オプション] パターン ファイル
スポンサードサーチ
文字列検索
文字列検索の方法です。
grep "検索文字列" ファイル名
grep "user" user.php
オプション
-iオプション:大文字と小文字を区別なし
-iオプションを使用すると、大文字と小文字を区別せずに検索できます。
grep -i "検索文字列" ファイル名
-nオプション:検索結果が含まれる行の行番号
nオプションを使用すると、検索結果が含まれる行の行番号も表示されます。
grep -n "検索文字列" ファイル名
-rオプション:ディレクトリ内のすべてのファイル
-rオプションを使用すると、ディレクトリ内のすべてのファイルを再帰的に検索できます。
指定したディレクトリ内のすべてのファイルとそのサブディレクトリ内のすべてのファイルを検索対象とします。
grep -r "検索文字列" ディレクトリ名
–includeオプション:拡張子を持つファイル
–includeオプションを使用すると、特定の拡張子を持つファイルだけを検索対象にできます。
grep --include=\*.{c,h} "検索文字列" -r ディレクトリ名
-vオプション:検索結果を反転
-vオプションを使用すると、検索パターンに一致しない行を表示できます。
grep -v "検索文字列" ファイル名
-eオプショ:正規表現を使用した検索
-eオプションを使用すると、拡張正規表現を使用できます。
grep -E "正規表現パターン" ファイル名
スポンサードサーチ
オプションの組み合わせ
除外ファイルを指定して検索
- grep -r: ディレクトリを再帰的に検索します。
- –exclude=’*.log’: .logファイルを除外します。
- “user_id": 検索する文字列。
- .: 現在のディレクトリを指定します。
grep -r --exclude='*.log' "user_id" .
複数除外ファイルも指定できます
grep -r --exclude='*.yaml' --exclude='*.json' "user_id" .
- grep -r: ディレクトリを再帰的に検索します。
- –exclude=’.yaml’: .yamlファイルを除外します。 –exclude=’.json’: .jsonファイルを除外します。
- “user_id": 検索する文字列。
- .: 現在のディレクトリを指定します。
対象ファイルのみ
phpファイルのみで再帰的にuser_idを検索してくれます
grep -r "user_id" . --include=\*.php
対象のクラスでuser_idを検索してくれます
- grep -rl “class.Controller" . –include=’.php’: class.*Controllerを含むPHPファイルを再帰的に検索し、そのファイル名を表示します。
- | xargs grep “user_id": 上記で取得したファイル名をxargsを使ってgrepに渡し、そのファイル内でuser_idを検索します。
class.*Controllerを含むすべてのPHPファイルの中でuser_idを検索できます。
grep -rl "class.*Controller" . --include='*.php' | xargs grep "user_id"
HogeController.phpファイル
class HogeController {
private $user_id;
public function getUserId() {
return $this->user_id;
}
}