RubyでDir.globを使用してワイルドカードでファイルを検索する方法

Ruby

Rubyの`Dir.glob`メソッドは、指定したパターンに一致するファイルやディレクトリを検索するために使用されます。このメソッドは、ワイルドカードを使ってファイルを検索できるため、非常に便利です。この記事では、`Dir.glob`を使ってワイルドカードを利用したファイル検索の方法を解説します。

1. `Dir.glob`の基本的な使い方

Rubyでファイルを検索するために`Dir.glob`メソッドを使う方法は簡単です。基本的な構文は次のようになります。

Dir.glob('パス/パターン')

ここで、`パターン`はファイル名やディレクトリ名のパターンを指定します。このパターンにワイルドカード(`*`, `?`, `[]`など)を使用することができます。

2. ワイルドカードの使用例

`Dir.glob`メソッドでは、いくつかのワイルドカードを使用することができます。これにより、特定のパターンにマッチするファイルやディレクトリを効率よく検索できます。

2.1. `*`(任意の文字列に一致)

`*`は任意の文字列に一致します。例えば、`.txt`で終わるすべてのファイルを検索したい場合、次のように使います。

Dir.glob('*.txt')

これにより、カレントディレクトリ内のすべての`.txt`ファイルがリストアップされます。

2.2. `?`(任意の1文字に一致)

`?`は任意の1文字に一致します。例えば、次のように書くことで、`file1.txt`や`file2.txt`のようなファイルを検索できます。

Dir.glob('file?.txt')

これにより、`file1.txt`や`fileA.txt`など、`file`の後に任意の1文字が続くファイルを検索できます。

2.3. `[]`(文字の範囲や選択肢に一致)

`[]`を使うと、指定した範囲や選択肢に一致する文字を検索できます。例えば、`[a-c]`を使って`a`から`c`の範囲内の文字を検索できます。

Dir.glob('file[1-3].txt')

これにより、`file1.txt`, `file2.txt`, `file3.txt`というファイルを検索できます。

3. ディレクトリの検索

`Dir.glob`を使うと、特定のディレクトリ内のファイルも検索できます。例えば、`images`ディレクトリ内のすべての`.jpg`ファイルを検索する場合、次のようにします。

Dir.glob('images/*.jpg')

このように、パスとパターンを組み合わせてディレクトリ内のファイルを検索することができます。

4. 複数のパターンを使用

複数のパターンを組み合わせて検索することも可能です。例えば、`txt`と`jpg`ファイルを同時に検索する場合、次のように書けます。

Dir.glob(['*.txt', '*.jpg'])

これにより、カレントディレクトリ内の`txt`ファイルと`jpg`ファイルを同時に検索できます。

5. まとめ

Rubyの`Dir.glob`メソッドを使うと、ワイルドカードを駆使して効率的にファイルを検索することができます。`*`, `?`, `[]`といったワイルドカードを組み合わせることで、特定のファイルを素早く見つけることができます。ファイル操作を行う際に非常に便利なメソッドなので、ぜひ覚えておきましょう。

コメント

タイトルとURLをコピーしました