grep
ファイル処理と正規表現と組み合わせてgrepを作るというのをやってみようかと。ファイル処理と正規表現の合わせ技は個人的にもよく使うし。
いやgrepだとコマンド引数から正規表現を作らないといけないかも。
テキストファイルの中からキーワードを探す。
fname = "a.txt" File.readlines(fname).each do |line| if line =~ /hello/ puts line end end
もう少しちゃんと書くとこんな感じ。これは難しすぎるけど。
pattern = ARGV.shift while gets print if /#{pattern}/ end
参考: http://www.lab.ime.cmc.osaka-u.ac.jp/~kiyo/pub/lecture/unixpro/ruby/#feature
grepと言っちゃうと誤解がありそうなので、キーワードを探すと言った方がいいかな。だったら正規表現を使わずにString#include?でいいか。そうするとファイルの章を正規表現の前に置ける。正規表現はちょっとややこしいから、極限まで後ろに置きたい。
正規表現のところでここで使ったサンプルを改造すればいいかも。
String#include?を使ったキーワードを探す
このほうがシンプル。これを正規表現を使ったものにステップアップするのもよい流れだと思う。
fname = "a.txt" File.readlines(fname).each do |line| if line.include?("hello") puts line end end