【Linux】文字列検索はgrepコマンドを使おう!おすすめオプションを紹介

linux_grepコマンド_使い方 オペレーティングシステム

特定のファイルを探すときどうしますか?
Windowsであればエクスプローラー, MacであればFinderから探しますよね.

いつも使っているファイルであれば探すのは簡単ですが,たまにしか使わないファイルは探すのが大変です.なぜか標準の検索機能は使いづらいですしね.

そんなときはgrepコマンドを使うと簡単に探しものが見つかります!

今回はgrepコマンドの使い方とおすすめのオプションを紹介します.

 grepコマンドとは

grepコマンドは文字列を検索するコマンドです.

$ grep [オプション] <検索パターン> <ファイル>

基本的には1つのファイルを調べるgrepコマンドですが,オプションを組み合わせることでディレクトリ内のすべてのファイルを調べることもできます.

ファイルを置いた場所さえ分からないときでも探せるので良いですね!

grepコマンドの使い方

grepコマンドを使ってファイル内の文字列を検索してみましょう!

検索にはこちらの文章を使います.(筋トレってメリットだらけですね!)

筋トレには多くのメリットがあります。以下に、主な筋トレのメリットをいくつか挙げてみます:

1 筋力の向上:
当然ながら、筋トレは筋肉の発達を促進し、全体的な筋力を向上させます。
これにより、日常生活での動作やスポーツパフォーマンスが向上する可能性があります。

2 代謝の向上:
筋トレは基礎代謝率を増加させ、エネルギーの消費を促進します。
筋肉は静止しているときでもエネルギーを使うため、筋トレを通じて筋肉を増やすことは、脂肪の燃焼を助けることができます。

3 姿勢の改善:
筋トレは体幹や背中の筋肉を強化し、良好な姿勢をサポートします。
これにより、腰痛や姿勢に関連する問題を軽減する可能性があります。

4 ストレス軽減:
運動はストレスホルモンの減少と、幸福感を高めるエンドルフィンの放出に寄与します。
筋トレを通じてストレスの軽減が期待されます。

5 自尊心の向上:
筋トレを続けることで体力や外見の改善が感じられ、これが自己評価や自尊心の向上に繋がることがあります。

これらは一般的なメリットであり、個々の人によって経験や感じ方は異なります。
また、適切なトレーニングプログラムと休息も重要ですので、無理なく取り組むことが大切です。

筋トレのメリットとは|chatGPT

grepコマンドは検索パターンに一致する行を出力します.

検索パターンに「筋トレ」を指定し,ファイル(20231118_grep.txt)から「筋トレ」という文字列を含む行をすべて表示します.

$ grep  筋トレ 20231118_grep.txt
ファイル内の「筋トレ」という文字列を探す|クリックして拡大できます

「筋トレ」が含まれる行が一覧で表示できました.

文章を見ただけではどこに「筋トレ」が含まれているか分かりませんよね.
grepコマンドを使うと行が絞られるので使用箇所が把握しやすくなりました.

grepコマンドのおすすめオプション

オプションを使うことで検索できる幅が広がります.

ここではよく使うオプションを3つ紹介しましょう!

-r ディレクトリごと検索する

「どこに目的のファイルがあるかわからない」
ざっくりと調べたいときはディレクトリごと検索すると良いでしょう.

ディレクトリごと検索するときは -rオプションを使います.

$ grep -r <検索パターン> <ディレクトリ>
「筋トレ」という文字列を含むファイルをディレクトリごと調べる|クリックして拡大できます
$ grep -r 筋トレ Linux/

検索対象をLinuxディレクトリとしました.

ディレクトリを調べると使用箇所と一緒にファイル名も表示されますね!
これでどのファイルで使っているか分かるようになりました.

-n 行番号を表示する

どの行で使われているか確認したいときは -nオプションを使います.

$ grep -n <検索パターン> <ファイル>
行番号も表示する|クリックして拡大できます
$ grep -n 筋トレ 20231118_grep.txt

n はnumberの略ですね.

行番号が表示されたことでさらにどこで使われているか分かりやすくなりました.

-v 一致しない行を表示する

一致する行だけでなく一致しない行を表示したいときもあるでしょう.

検索パターンに一致しない行を表示するときは -vオプションを使います.

$ grep -v <検索パターン> <ファイル>
-vオプション 検索パターンに一致しない行を表示する|クリックして拡大できます
$ grep -v training 20231118_grep.txt

ログファイルなどから不要な値を持つ行を省いて表示させたいときに使いますね.

-i 大文字と小文字を区別しないで検索する

文字の大小関係なく文字列を検索したいときは -iオプションを使います.

$ grep -i <検索パターン> <ファイル>
-i 大文字と小文字を区別しないで検索する|クリックして拡大できます
$ grep -i training 20231118_grep.txt

検索パターンが training なので通常であれば1行目しか表示されないでしょう.

training(小文字)とTRAINING(大文字)は意味は一緒です.
どちらも検索対象に含めたいときは -iオプションを付けると大小の区別がなくなります.

まとめ

今回は文字列を検索するgrepコマンドについて紹介しました.

gpreコマンドは実務でもよく使います.
覚えていて損はありません.

オプションを使うとファイルだけでなくディレクトリも検索できました.
ディレクトリ内を調べるときは -rオプションを使います.

grepコマンドはソースファイルで使うとさらに便利さを感じられるでしょう.

ソースは100行を超えることも珍しくありません.
そんな膨大な記述量のなかである文字列だけを目視で探すのは限界があります.

grepコマンドを使うと簡単に一覧化できるので是非ソースファイルに使ってみてください!