Can you get the 1st occurrence of a value using grep?


#1

Can you get a 1st occurence of a sting inside a huge text file?

For instance, I know that there will be 1 or more occurrences of a the
string ‘fail’ in a text file and I only want to get the first line
containing the ‘fail’ instead of getting every line with a fail. My
program reads over 100 files that may contain one or more ‘fail’ values.

Thanks
MC

Dir["//MYFile/*.txt"].each do |textfile|
getGrepOffense = textfile.grep(/fail/)
strOffense = getGrepOffense.join
puts strOffense
end


#2

lines.detect {|l| l =~ /fail/}

On Thu, May 14, 2009 at 2:30 PM, Mmcolli00 Mom removed_email_address@domain.invalid
wrote:

Dir["//MYFile/*.txt"].each do |textfile|
getGrepOffense = textfile.grep(/fail/)
strOffense = getGrepOffense.join
puts strOffense
end

Posted via http://www.ruby-forum.com/.


thanks,
-pate

Don’t judge those who choose to sin differently than you do

http://on-ruby.blogspot.com
http://eldersjournal.blogspot.com


#3

Cool thanks! -MC


#4

Mmcolli00 Mom wrote:

Dir["//MYFile/*.txt"].each do |textfile|
getGrepOffense = textfile.grep(/fail/)
strOffense = getGrepOffense.join
puts strOffense
end

[~/tmp] cat grepfail.rb
DATA.grep /fail/ do |line|
p line
break
end

END
ok 1
ok 2
fail 1
ok 3
fail 2
fail 3
[~/tmp] ruby grepfail.rb
“fail 1\n”

This should work with an open File in place of DATA.