Linuxのコマンドには、ファイルに指定した文字列が存在するか確認するのに便利なgrepコマンドがあります。
この記事では、
- grepコマンドとは
- grepコマンドの書き方
- grepコマンドのパターン別使い方
- grepコマンドの主なオプション
について解説します。
grepは指定した文字列を抽出するのに非常に便利なコマンドですので、ぜひ使い方を覚えましょう!
grepとは
「grep」コマンドはファイルに特定の文字列が存在するか検索するときに使われる便利なコマンドです。
例えば、ソースファイルの中に特定の変数が含まれているか調べたいとき、ファイルをいちいち開かずにgrepコマンドでファイル名のみ指定すれば文字列を検索することができます。
grepコマンドは書き方も簡単です。
$ grep 検索文字列 ファイル名
基本的にこの記述のみでファイルに指定した文字列が存在するか、検索することが可能です。
次項ではgrepコマンドの使い方を見ていきましょう。
grepの使い方
ここではgrepコマンドの使い方をパターン別に紹介します!
指定した文字列を抽出する
まずは一番オーソドックスな方法として、指定したファイルに特定の文字列が存在するか調べてみましょう。
この例では、ファイル「sample_01.txt」に”samurai”という文字列が含まれているか調べています。
$ grep samurai sample_01.txt
実行結果:
このように検索した文字列が存在する場合は、検索対象の文字列が表示されます。また、以下のように「ディレクトリ」を指定して、ディレクトリの中から検索文字列を含むファイルを検索することもできます。
$ grep samurai /tmp/test/*
実行結果:
この例ではディレクトリ「/tmp/test」の中に、指定した文字列が存在するかを確認しています。検索した文字列が存在した場合はファイルから表示されることがわかりますね!
複数のファイルから検索
「sample_01.txt」~「sample_05.txt」のような検索対象のファイルが複数存在する場合は、以下のように*(ワイルドカート)を使用すると便利です。
$ grep samurai sample_0*
実行結果:
このように「sample_0*」とすれば、sample_0を含むファイルを一気に検索することができますので便利ですね!
複数の文字列を検索
場合によっては複数の文字列を含む行があるか検索したい場合があります。
grepで複数の条件を指定したい場合は|(パイプ)でコマンドを繋げる方法があります。
$ grep 検索文字列1 ファイル名 | grep 検索文字列2
以下の例では、sample_0を含むファイルの中に”samurai”と”blog”が存在する行があるかを調べています。
$ grep samurai sample_0* | grep blog
実行結果:
このように複数条件も指定できることがわかりますね!
grepの主なオプション
ここでは、grepコマンドでよく使用する主なオプションについて紹介しますl
オプション | 説明 |
---|---|
-c | マッチした行数を表示する |
-h | マッチしたファイル名を表示しない |
-i | 大文字小文字を区別しない |
-n | マッチした文字列の行番号を表示する |
-s | エラーメッセージを表示しない |
-v | マッチしない行を表示する |
-cで行数を表示する
検索文字列が複数マッチした場合の行数を取得したい場合はオプション「-c」を使用します。
$ grep -c samurai sample_01.txt
実行結果:
マッチした行数が表示されていることが確認できます!
-nでマッチした行番号を表示する
検索文字列がマッチした場合、マッチした行番号を取得するにはオプション「-n」を使用します。
$ grep -n samurai sample_01.txt
実行結果:
マッチした文字列の行番号が表示されていることが確認できます!
Linuxについてもっと知りたい方へ
そもそもLinuxについて、
Linuxを効率よく学習する方法が知りたい
といった情報を知りたい方は、以下の記事も参考にしてみてくださいね!
まとめ
ここでは、指定した文字列がファイルに存在するか検索するgrepコマンドの、
- grepコマンドとは
- grepコマンドの書き方
- grepコマンドのパターン別使い方
- grepコマンドの主なオプションと使い方
について解説しました。
Linuxで開発や運用を行う場合、膨大な数のファイルを管理することになると思います。そんなとき特定の単語が存在するか確認する場合、grepコマンドが役に立ちますので使い方についてはよく覚えておきましょう。
もしgrepコマンドの使い方を忘れてしまったら、この記事を参考にしてくださいね。