From: Atsuko Yoshida Date: 1999-01-25T10:55:02+09:00 Subject: [ruby-list:11706] grep したいのに・・・ こんにちは。あつこです。 またまた単純な質問で申し訳ないのですが、grepの使い方について伝授して 欲しいんです。 <やりたいこと> あるファイルの最後の行にある、特定の文字列を検索し、あったらプリントす る。 シェルでいうと、 tail -1 abcfile | grep "*********" 的なことなんです。 <rubyでは・・・?> def TrailerCheck(fullname) fnm = File.open(fullname,'r') $pat = "*********" print "pat : #{$pat}\n" print "file line : \n" print fnm.to_a #print fnm.find {|line| print "ok\n" if $pat === line } print fnm.grep($pat) end #--- def end こんなのを作って実行してみたんですが、いまいち引っかかりません。 で、この実行結果は、 pat : ********* file line : testdata testdata2 19990121 ********* でした。 この結果の後に、 19990121 ********* が出て欲しいのに。 ためしに、findも使ってみましたが、これもうんともすんともなんともかん とも・・・。 grepの使い方が間違えているんだと思うんですけど、指摘してくださいm(_ _)m。 ちなみに、このdefの内容だと、一番最後の行以外でも引っかけてしまうの で、なんとかうまく最後の行だけを引っかけたいんです。 数少ない神経細胞を駆使して考えてみたんですけど、ファイルのopen時に最 後の行を引っかけてみるとか・・・。・・・あぁ、細胞があきらめモードに入っ てしまうぅ。 ではでは。 // atsuko@cis.ebina.fujixerox.co.jp