#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)