1 2 3 4 5 6 7 8 9
#!/usr/bin/env ruby # coding: binary Dir["**/*.c"].each do |f| t = File.read(f) if t.gsub!(/^(\s*)([^\n\{]+)\n\1(while[^\n\{;]+)\n\s*\2/, "\\1do \\2\n\\1\\3;") File.open(f,'w') {|s| s << t } puts "#{f} modified" end end