if ARGV.size < 1 puts "Use like mysqldump database_name | ./#{ $PROGRAM_NAME } table_name[s]" exit(0) end # Dump for each table in standard mysqldump output is started with the line like: # # -- Table structure for table `access_rights` # # Use +Enumerable#slice_before+ to slice the whole dump into sections per table # and then select only sections for the tables we are interested in. # Create regexp which will match any of the passed table names quoted with backticks quoted_table_names = /`#{ ARGV.join("|") }`/ table_dump = STDIN.slice_before(/\A-- Table structure for table/).select do |table_section| table_section.first =~ quoted_table_names end.join print(table_dump)
You need to create an account or log in to post comments to this site.