ruby ファイルの先頭に特定文字列が含まれているものだけ抽出する

  • 作成日 2021.03.31
  • 更新日 2022.08.09
  • Ruby
ruby ファイルの先頭に特定文字列が含まれているものだけ抽出する

Rubyでディレクトリ内にあるファイルの先頭に特定文字列が含まれているものだけ抽出するるまでの手順を記述してます。Rubyのバージョンは3.0.0となります。

環境

  • OS CentOS 7.9.2009 (Core)
  • Ruby 3.0.0

ファイル一覧抽出

globでディレクトリ内にあるファイル一覧を抽出することが可能です。
※ここでは、hogeディレクトリ配下で拡張子が「.txt」のものだけ抽出します。

hogeディレクトリ配下にあるファイル

globで取得

p Dir.glob("/hoge/*.txt")

<出力結果>
["/hoge/aaa.txt", "/hoge/baa.txt", "/hoge/ccc.txt"]

これを「select」を使用して、先頭に特定文字列が含まれているものだけ抽出します。
※ここでは先頭に「a」が含まれているファイルだけを抽出します。

file = Dir.glob("/hoge/*.txt").select do |x|
  x.start_with?("/hoge/a")
end

p file

<出力結果>
["/hoge/aaa.txt"]

これで、ファイルの先頭に特定文字列が含まれているファイルだけ抽出することができます。

EXCELファイルのなど開いてるときに「~$」がつき、文字列が含まれているを検索条件に指定すると、このファイルまで取得することがあるので、先頭から抽出する必要があったので、メモしてます。