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

find -iregexオプションの使い方|大文字小文字を区別せずに正規表現でファイル検索する方法

find -iregexオプション|大文字小文字を区別せず正規表現で検索する
find -iregexオプション|大文字小文字を区別せず正規表現で検索する

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

生徒

「Linuxのfindコマンドで、ファイル名を検索するときに、大文字と小文字の違いを無視する方法ってありますか?」

先生

「それなら-iregexオプションを使えばできるよ。正規表現と組み合わせて、大文字と小文字の違いを気にせず検索できるんだ。」

生徒

「えっ?じゃあ、'File1.txt'も'file1.TXT'も両方見つかるってことですか?」

先生

「そのとおり!一緒に具体的な使い方を学んでいこう!」

1. findコマンドと正規表現検索の基本

1. findコマンドと正規表現検索の基本
1. findコマンドと正規表現検索の基本

Linuxでファイルを探すときに使うのがfindコマンドです。通常は-nameでファイル名を指定しますが、もっと柔軟に検索したいときは正規表現が便利です。

正規表現(せいきひょうげん)とは、「文字の並び方」にルールをつけて検索できる記号のようなものです。たとえば、「.txtで終わるファイル」といった条件も記述できます。

2. -regexとの違いと-iregexの特徴

2. -regexとの違いと-iregexの特徴
2. -regexとの違いと-iregexの特徴

-regexオプションは、ファイルのパス全体に対して、指定した正規表現が一致するファイルを検索します。

-iregexはその拡張で、大文字小文字を区別せずにマッチするファイルを検索することができます。

たとえば、Report.txtreport.TXTが混在していても、-iregexなら一度に見つけられます。

3. 実際にfind -iregexを使ってみよう

3. 実際にfind -iregexを使ってみよう
3. 実際にfind -iregexを使ってみよう

まずは、テスト用のディレクトリとファイルを用意してみましょう。


mkdir testcase
cd testcase
touch FileA.txt filea.TXT Report.csv report.CSV

この中から「.txt」で終わるファイルを大文字小文字を区別せずに探すには、次のように書きます。


find . -iregex '.*\.txt'
./FileA.txt
./filea.TXT

このように、拡張子が小文字でも大文字でも同じようにヒットします。

4. 大文字と小文字を区別しない検索が役立つ場面

4. 大文字と小文字を区別しない検索が役立つ場面
4. 大文字と小文字を区別しない検索が役立つ場面

Linuxでは、ファイル名の大文字と小文字は完全に区別されます。そのため、同じ内容のファイル名に見えても、Document.txtdocument.txtは別物として扱われます。

でも実際の現場では、手動で作成されたファイルなどで、大文字小文字のルールが統一されていないことも多いです。そんなとき、-iregexを使うと、間違いなく全ての対象ファイルを検索できます。

5. 拡張子がcsvのファイルをすべて探す例

5. 拡張子がcsvのファイルをすべて探す例
5. 拡張子がcsvのファイルをすべて探す例

たとえば、「.csv」や「.CSV」「.Csv」など、どんな書き方でも探し出したい場合は、以下のようにします。


find . -iregex '.*\.csv'
./Report.csv
./report.CSV

ポイント:
正規表現はファイルの「パス全体」に対してマッチするので、./なども含めた表現が必要です。

6. -nameや-inameとの違いを整理しよう

6. -nameや-inameとの違いを整理しよう
6. -nameや-inameとの違いを整理しよう

findには-name(完全一致)や-iname(大文字小文字を無視した一致)もありますが、-iregexはもっと柔軟なパターン指定ができるのが魅力です。


find . -iname "*.csv"
./Report.csv
./report.CSV

ただし-inameはワイルドカードだけなので、[0-9]^$といった正規表現特有の機能は使えません。
もっと細かく制御したいなら、やはり-iregexが強力です。

7. よく使う-iregexパターン例

7. よく使う-iregexパターン例
7. よく使う-iregexパターン例
  • .*\.txt:拡張子がtxt(大小文字問わず)
  • .*report.*\.csv:「report」を含み、拡張子がcsv
  • \./[A-Z][a-z]+\.docx:先頭が大文字、続く小文字、拡張子がdocx

こうしたパターンを覚えておくと、実務でもファイル管理がとても楽になります。

8. Emacs正規表現に気をつけよう

8. Emacs正規表現に気をつけよう
8. Emacs正規表現に気をつけよう

Linuxのfindコマンドは、Emacs式正規表現を使います。PerlやGrepと少し違うルールのため、うまくマッチしないときはパス全体にマッチしているか注意しましょう。

たとえば、単に[a-z]+\.txtのように書くとマッチしないことがあります。\./を忘れずに書くのがコツです。

関連記事:
カテゴリの一覧へ
新着記事
New1
システム情報・プロセス管理
ps -Aオプション|すべてのプロセスを表示する
New2
ファイル・ディレクトリ操作
cp --parentsオプションの使い方|ディレクトリ構造を保持してコピーする方法を完全解説!
New3
ファイル・ディレクトリ操作
rm -fオプションとは?Linuxで存在しないファイルでもエラーを出さず強制削除する方法
New4
演算と比較
シェルスクリプトでファイル存在チェックを行う比較演算子まとめ
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門