カテゴリ: Linuxコマンド集 更新日: 2025/12/08

grep -lオプションの使い方を完全解説!一致したファイル名だけを表示する方法

grep -lオプション|一致したファイル名だけを表示する
grep -lオプション|一致したファイル名だけを表示する

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

生徒

「grepコマンドって検索に使うって聞いたんですけど、たくさんのファイルの中から、どのファイルに一致した内容があるかだけ知りたいときってどうすればいいですか?」

先生

「その場合は、grepの-l(エル)オプションを使うと便利ですよ。『一致したファイル名』だけを表示してくれます。」

生徒

「検索にヒットした中身じゃなくて、ファイル名だけが欲しいときに使えるんですね?」

先生

「その通りです!では、grep -lオプションの基本的な使い方を見ていきましょう。」

1. grep -lオプションとは?

1. grep -lオプションとは?
1. grep -lオプションとは?

grep(グレップ)とは、Linuxで「文字列を検索するためのコマンド」です。通常は、検索に一致した行の中身を表示しますが、-lオプションをつけることで、「検索に一致したファイル名だけ」を表示できます。

この-lは「list(リスト)」の略と考えると覚えやすいです。つまり「一致したファイルのリストを表示する」オプションです。

2. grep -lの基本構文

2. grep -lの基本構文
2. grep -lの基本構文

使い方はとてもシンプルです。以下の構文になります。


grep -l 検索文字列 対象ファイル

例えば、現在のディレクトリ内にある.txtファイルの中から「apple」という文字列を含むファイル名だけを表示したい場合、次のように実行します。


grep -l apple *.txt
fruits.txt
menu.txt

この例では、「apple」という単語が含まれているファイルがfruits.txtmenu.txtだったということが分かります。

3. grep -lと通常のgrepの違い

3. grep -lと通常のgrepの違い
3. grep -lと通常のgrepの違い

通常のgrepコマンドは、一致した行そのものを表示します。


grep apple *.txt
fruits.txt:apple
menu.txt:green apple juice

それに対して、-lオプションをつけると、行の中身ではなくファイル名だけを表示してくれるのが特徴です。

4. サブディレクトリも含めて検索するには?

4. サブディレクトリも含めて検索するには?
4. サブディレクトリも含めて検索するには?

もし、サブディレクトリ(下の階層)にあるファイルも含めて検索したい場合は、grep -rl-r(再帰的)のオプションを組み合わせて使います。


grep -rl apple .
./data/fruits.txt
./memo/menu.txt

このように、「.」は現在のディレクトリを意味し、-rでその中のすべてのフォルダやファイルを対象に検索します。

5. -lのあとに注意すべき点

5. -lのあとに注意すべき点
5. -lのあとに注意すべき点

grepの-lは、一致したらその時点でそのファイルの表示を終了するため、大量の一致がある場合でも高速に処理されます。

また、表示されるのは一致があったファイルのみなので、「一致しなかったファイル」は表示されません。すべてのファイルの確認が必要な場合は、-L(大文字のエル)オプションを使うと、一致しなかったファイル名を表示することもできます。

6. よく使うオプションの組み合わせ例

6. よく使うオプションの組み合わせ例
6. よく使うオプションの組み合わせ例

grepコマンドは他のオプションと組み合わせて使うことで、もっと便利になります。ここでは、-lと相性の良い組み合わせを紹介します。

-l と -i(大文字小文字を区別しない)


grep -il apple *.txt
menu.txt
apple_recipe.txt

-l と -r(再帰的に検索)


grep -rl banana ./recipes
./recipes/fruits.txt
./recipes/smoothie.txt

-l と --include(特定の拡張子だけ検索)


grep -rl --include="*.log" error .
./logs/server.log
./logs/app.log

7. ファイルの中身を見ずに絞り込みたいときに便利

7. ファイルの中身を見ずに絞り込みたいときに便利
7. ファイルの中身を見ずに絞り込みたいときに便利

grep -lは、検索キーワードが「どのファイルに含まれているか」だけを把握したいときに最適です。中身の確認はあとで行いたいけど、とにかく対象のファイル名を特定したいときに便利です。

例えば、ログファイルの中から「ERROR」が含まれているログだけを抽出したいときにも使えます。

8. grep -lはスクリプトにも便利

8. grep -lはスクリプトにも便利
8. grep -lはスクリプトにも便利

grep -lは、シェルスクリプトや自動処理にもよく使われます。なぜなら、ファイル名だけを出力してくれるので、次の処理につなげやすいからです。

例えば、次のようにxargsコマンドと組み合わせると、一致したファイルを一括でコピーしたり削除したりできます。


grep -l "secret" *.txt | xargs cp -t ./secret_files

このコマンドは、「secret」という文字列が含まれているファイルだけをsecret_filesフォルダにコピーします。

カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
stat -Lオプションの使い方を解説|シンボリックリンクをたどってファイル情報を確認しよう
New2
ファイル・ディレクトリ操作
realpath -eオプションの使い方を解説!Linuxで存在するファイルのみ絶対パスを取得する方法
New3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
New4
ファイル・ディレクトリ操作
touch --referenceオプションの使い方を完全ガイド!初心者でもわかるタイムスタンプのコピー方法
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
rmコマンドとは?Linuxでファイルやディレクトリを削除する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cpコマンドとは?Linuxでファイルやディレクトリをコピーする基本操作を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
Linuxのls --full-timeオプションを完全ガイド!初心者でもわかるタイムスタンプのフル表示方法