#navi(../)
* Rubyでファイル内のテキスト情報をgrepする方法 [#jbc0b6b8]
Rubyのgrepを利用しファイル内のテキスト情報をgrepするサンプルコードと動作結果を以下に記します。

#contents
#htmlinsertpcsp(ll-top.html,ll-sp.html)

* 動作確認環境 [#r0638da9]
 $ ruby -v
 ruby 1.9.3p484 (2013-11-22) [i386-cygwin]

* 関連記事 [#tb1ac64a]
-[[Perlでファイル内のテキスト情報をgrepする方法>Perl/サンプル/Perlでファイル内のテキスト情報をgrepする方法]]
-[[UbuntuにRubyをインストール>Ruby/インストール/UbuntuにRubyをインストール]]

* 使用したテキストファイル [#x3417e58]
&ref(pref.txt); (改行コードLF)
 hokkaido
 aomori
 iwate
 miyagi
 akita
 yamagata
 fukushima
 ibaraki
 tochigi
 gunma
 saitama
 chiba
 tokyo
 kanagawa
 niigata
 toyama
 ishikawa
 fukui
 yamanashi
 nagano

* Rubyでgrepを行うサンプルコード [#c37cdef2]
本サンプルコードは、ファイルを読み込み配列に投入しています。~
ファイルのテキスト情報を投入した配列を使用しgrepを行っています。~
尚、grepの検索パターンはaから始まる文字列を設定しています。~
&ref(grep.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をするサンプルコードの実行結果 [#dc89b510]
上記のサンプルコードを実行してみます。
 $ ruby grep.rb pref.txt
 ["aomori\n", "akita\n"]
配列にaから始まるaomoriとakitaが格納されているのが確認できます。~
あとはこの結果が格納された配列を使い回せばよいと思います。

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

#htmlinsertpcsp(ll-btm.html,ll-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS