このエントリーをはてなブックマークに追加


Rubyでファイル内のテキスト情報をgrepする方法

Rubyのgrepを利用しファイル内のテキスト情報をgrepするサンプルコードと動作結果を以下に記します。


スポンサーリンク

動作確認環境

$ ruby -v
ruby 1.9.3p484 (2013-11-22) [i386-cygwin]

関連記事

使用したテキストファイル

filepref.txt (改行コードLF)

hokkaido
aomori
iwate
miyagi
akita
yamagata
fukushima
ibaraki
tochigi
gunma
saitama
chiba
tokyo
kanagawa
niigata
toyama
ishikawa
fukui
yamanashi
nagano

Rubyでgrepを行うサンプルコード

本サンプルコードは、ファイルを読み込み配列に投入しています。
ファイルのテキスト情報を投入した配列を使用しgrepを行っています。
尚、grepの検索パターンはaから始まる文字列を設定しています。
filegrep.rb (改行コードLF)

def usage
  puts "Usage: " + File.basename($0) + ' <filename>'
end

if ARGV.empty? || ARGV.count() != 1
  usage()
end

if File.exist?(ARGV[0])
  results = File.readlines(ARGV[0]).grep(/^a/)
  p results
else
  puts ARGV[0] + " file not found."
end

Rubyでgrepをするサンプルコードの実行結果

上記のサンプルコードを実行してみます。

$ ruby grep.rb pref.txt
["aomori\n", "akita\n"]

配列にaから始まるaomoriとakitaが格納されているのが確認できます。
あとはこの結果が格納された配列を使い回せばよいと思います。

以上、Rubyでgrepする方法でした。


スポンサーリンク


添付ファイル: filepref.txt 201件 [詳細] filegrep.rb 373件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:31:25 (1308d)