Skip to content

Instantly share code, notes, and snippets.

@chenshuo
Created March 29, 2012 06:28
Show Gist options
  • Save chenshuo/2234140 to your computer and use it in GitHub Desktop.
Save chenshuo/2234140 to your computer and use it in GitHub Desktop.
Grep in files
DEBUG = false
if ARGV.size < 2
puts "Usage: #$0 pattern file_pattern"
puts "Example: #$0 '\\d+' '*.rb'"
exit
end
dirname = File.dirname(ARGV[1])
file_pattern = File.basename(ARGV[1])
files = File.join(dirname, "**", file_pattern)
puts files if DEBUG
pattern = /#{ARGV[0]}/
Dir.glob(files) do |file|
puts file if DEBUG
if File.file?(file)
lineno = 0
File.open(file).each do |line|
lineno += 1
if line =~ pattern
puts "#{file} (#{lineno}): #{line}"
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment