カテゴリ: Linuxコマンド集 更新日: 2026/05/20

grep -fオプションの使い方を完全ガイド!パターンをファイルから読み込んで検索する方法

grep -fオプション|パターンをファイルから読み込む
grep -fオプション|パターンをファイルから読み込む

先生と生徒の会話形式で理解しよう

生徒

「grepでたくさんのキーワードを一気に検索したいとき、どうすればいいですか?」

先生

「そんなときは、-fオプションを使うと便利ですよ。」

生徒

「-fオプションって何ですか?初めて聞きました。」

先生

「これは、検索キーワードをファイルに書いておいて、そのファイルを使ってgrepする機能です。実際にやってみましょう!」

1. grepコマンドとは?

1. grepコマンドとは?
1. grepコマンドとは?

grepは、Linuxでテキストファイルの中から特定の文字列を検索するコマンドです。「検索する文字列(キーワード)」を指定すると、そのキーワードを含む行だけを表示してくれます。

たとえば、大量のログファイルの中から「error」や「warning」といった文字を探すときに使われます。

2. -fオプションとは?

2. -fオプションとは?
2. -fオプションとは?

-fオプションは、「検索するキーワードをテキストファイルに書いておいて、それを使ってgrepする」ためのオプションです。

つまり、たくさんのキーワードをまとめて検索したいときにとても便利です。検索キーワードが数十個あるときでも、1回のgrepで済むんです。

3. grep -fオプションの使い方

3. grep -fオプションの使い方
3. grep -fオプションの使い方

以下のようなキーワードが書かれたファイルを用意します(たとえば「keywords.txt」という名前)。


apple
banana
cherry

この「keywords.txt」を使って、別のファイルの中からこれらの単語を探すには、次のように書きます。


grep -f keywords.txt fruits.txt
banana
cherry

この例では、「fruits.txt」の中に「banana」と「cherry」が含まれていたので、その行が表示されました。

4. -fオプションのファイルの書き方

4. -fオプションのファイルの書き方
4. -fオプションのファイルの書き方

-fオプションで使うファイルは、1行につき1つのキーワードを書いてください。

スペースは入れずに、1行に1単語です。空白が入っていると、うまく検索できないことがあります。

5. grep -fと通常のgrepの違い

5. grep -fと通常のgrepの違い
5. grep -fと通常のgrepの違い

通常のgrepでは、次のように検索します。


grep "apple" fruits.txt
apple

でも、検索キーワードがたくさんあると、次のように長くなってしまいます。


grep -e "apple" -e "banana" -e "cherry" fruits.txt

こういうときに-fを使うと、キーワードを別ファイルにまとめられるので便利なんです。

6. 応用:grep -fと-iや-nの組み合わせ

6. 応用:grep -fと-iや-nの組み合わせ
6. 応用:grep -fと-iや-nの組み合わせ

-fは他のオプションと一緒に使うこともできます。たとえば、大文字小文字を区別せずに検索したいときは-iを使います。


grep -i -f keywords.txt fruits.txt

また、何行目に該当したのかも知りたい場合は-nを使います。


grep -n -f keywords.txt fruits.txt
2:banana
5:cherry

7. grep -fで検索対象が空だとどうなる?

7. grep -fで検索対象が空だとどうなる?
7. grep -fで検索対象が空だとどうなる?

-fで指定したファイルが空(中身が何も書かれていない)だった場合、grepは何もヒットせず、何も表示しません。

ファイルの中身が正しく書かれているか、事前に確認するようにしましょう。

8. よくある間違い:スペースと改行

8. よくある間違い:スペースと改行
8. よくある間違い:スペースと改行

検索キーワードを書いたファイルの1行目の最後に空白が入っていると、意図しない動作をすることがあります。

例えば、次のようなファイルはNGです。


apple 
banana
cherry

この場合、appleのあとにスペースがあるため、ヒットしないことがあります。不要な空白は削除しておきましょう。

9. 他のコマンドと組み合わせて使う例

9. 他のコマンドと組み合わせて使う例
9. 他のコマンドと組み合わせて使う例

たとえば、findコマンドと組み合わせて、複数ファイルをまとめて検索することも可能です。


find . -name "*.log" -exec grep -f keywords.txt {} \;

この例では、カレントディレクトリ以下のすべての「.log」ファイルを対象に、keywords.txtに書かれたキーワードで検索しています。

カテゴリの一覧へ
新着記事
New1
テキスト・データ処理
patch -Rオプションの使い方を完全ガイド!初心者でもわかるLinuxでパッチを元に戻す方法
New2
テキスト・データ処理
less -Xオプションの使い方を完全ガイド!終了後も画面内容を残す方法
New3
ファイル・ディレクトリ操作
lsコマンドの-lオプションでファイルの詳細情報を一覧表示しよう!初心者でもわかる使い方と意味を徹底解説
New4
ディスクとファイルシステム管理
dfコマンドの使い方を完全ガイド!初心者でもわかるLinuxのディスク使用量確認方法
人気記事
No.1
Java&Spring記事人気No1
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
lsコマンドとは?Linuxでファイルやディレクトリを一覧表示する基本を初心者向けに解説
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!