皆さんこんにちは!
Linuxのコマンドを使いこなしていますか?
Linuxには便利なコマンドが多数存在します。
サーバー管理に欠かせないコマンドの中から今回は、grep(グレップ)コマンドをご紹介いたします。
grepコマンドとは?
grepコマンドの使い方
grepコマンドを使ってみよう!
grepコマンドを複数のファイルから使う
grepコマンドの主なオプションたち
一致しないものを検索する 【-v オプション】
大文字、小文字を区別せず検索する 【-i オプション】
マッチした行数を表示する 【-c オプション】
マッチした文字列の行番号を表示する 【-n オプション】
まとめ
grepコマンドとは?
grepコマンドとは、ファイルから特定の「文字列(文字のパターン)」が存在するかを調べたいときに利用されるLinuxコマンドです。
grepコマンドでは、検索対象として複数のファイルやディレクトリが使用できます。
また、パイプ(|)と組み合わせることによって他のコマンドの出力結果から「文字列」を絞り込むことができ非常に便利なコマンドです。
それでは、grepコマンドの使い方を見ていきましょう!
grepコマンドの使い方
grepコマンドを使ってみよう!
$grep [オプション] 文字列 ファイル名
このような記述のみで指定したファイルに文字列が存在するのかを簡単に検索することができます。
それでは、grepコマンドを使用してみましょう!
今回はこのようなファイル「sample1.txt」
$ cat sample1.txt red blue yellow green orange white black
から「blue」という文字列を検索してみましょう。
$ grep blue sample1.txt blue
するとこのように検索した文字列が存在する場合は、検索対象の文字列が表示されます。
しかし、「pink」のように存在しない文字列を検索すると
$ grep pink sample1.txt
というように出力がなくなります。
このようにファイル中に特定の「文字列」が存在するのかを簡単に見極めることができて便利ですよね!
続いてgrepコマンドの他の使い方も見ていきましょう。
grepコマンドを複数のファイルから使う
grepコマンドを使ってどのように1つのファイルから「文字列」を検索するのか分かったかと思います。
続いて、複数のファイルから検索してみましょう!
複数のファイルから検索するためにワイルドカード(*)を利用します。
$ ls sample1.txt sample2.txt sample3.txt
から、先ほどと同じく「blue」という文字列を検索してみましょう。
$ grep blue ./* sample1.txt:blue
このようなgrepコマンドの使用方法を覚えればデータを探す際にスピードアップ間違いなしですね!!
grepコマンドの主なオプションたち
オプション | 説明 |
---|---|
-v | マッチしない行を表示する |
-i | 大文字小文字を区別しない |
-c | マッチした行数を表示する |
-n | マッチした文字列の行番号を表示する |
-q | 実行結果を標準出力に表示しない |
-h | マッチしたファイル名を表示しない |
-b | パターンが何文字目にあるのかを表示する |
-s | エラーメッセージを表示しない |
ここからいくつか具体的に使用法を見てみましょう!
一致しないものを検索する 【-v オプション】
今までは、grepコマンドを使って一致する「文字列」を検索していました。
しかし、一致しない「文字列」を検索したくなるときもありますよね。
そのときに役立つのが【-v オプション】です。
それでは、使用法を見ていきましょう。
今回もこのようなファイル「sample1.txt」を使用します。
$ cat sample1.txt red blue yellow green orange white black
そこから、「blue」という文字列以外を検索してみましょう。
$ grep -v blue sample1.txt red yellow green orange white black
一致しないものが検索できていることが分かりますね!
大文字、小文字を区別せず検索する 【-i オプション】
grepコマンドでは通常大文字、小文字を区別してくれます。
文字の大小を区別してくれることは助かるのですが、まれに文字の大小が分からず何度も検索することになることもありますよね・・・。
そのときに助かるのが大文字、小文字の区別なし検索【-i オプション】です!
それでは、使用法を見ていきましょう。
今回は「sample1.txt」から「BLUE」という文字列を検索してみましょう。
$ grep -i BLUE sample1.txt blue
文字の大小が異なっても検索できるようになりましたね!
マッチした行数を表示する 【-c オプション】
文字列そのものを検索するのではなく、何度文字列が出現したのかを知りたいという場合におススメしたいのが【-c オプション】です!
このオプションでは、文字列の「出現行数」を表示してくれます。
それでは、使用法を見ていきましょう。
今回は「sample1.txt」から「blue」という文字列の出現行数を検索してみましょう。
$ grep -c blue sample1.txt 1
このように「出現回数」を数字で返してくれますので、シェルスクリプト等で利用できそうですね!
マッチした文字列の行番号を表示する 【-n オプション】
最後にご紹介するのが、【-n オプション】です。
このオプションでは、ファイルの中で文字列が何行目に出現したのかを表示してくれます。
それでは、使用法を見ていきましょう。
今回は「sample1.txt」から「blue」という文字列の出現行番号を検索してみましょう。
$ grep -n blue sample1.txt 2:blue
このように行番号を同時に表示してくれるので、プログラムなどの中で文字列を検索したい場合に助かりそうですね!
まとめ
今回は、grepコマンドをご紹介させていただきました。
grepコマンドには、さまざまなオプションがあり、使いこなすことでかなり便利にサーバーを管理できるようになりそうですね。
今後もLinuxコマンドをご紹介していく予定ですので、ぜひご覧くださいね!
それでは、皆さまよりよいサーバーライフをお過ごしください!!