#!/usr/bin/perl use warnings; print "-"x80,"\n"; if (! defined($ARGV[1]) ) { print "Start het programma als volgt: \n" ."./fetchtable -db db.sql\n"; exit; } my $sqldump = $ARGV[1]; my $begin_of_db = 0; my $end_of_db = 0; my $begin_of_table = 0; my $end_of_table = 0; my $linenumber = 0; my $name_of_table; my $name_of_db; my $fh; print "Geef de databasenaam:\n"; chomp($name_of_db = ); print "Geef de tabelnaam waarvan structuur en data uit de dump moet worden" ."gehaald\n"; chomp($name_of_table = ); print "-"x80,"\n"; open($fh, "<$sqldump") or die "Kan $sqldump niet openen!\n"; my $db_cmp_data = "-- Current Database: `$name_of_db`"; my $table_struct_cmp_data = "-- Table structure for table `$name_of_table`"; my $check = 0; while(<$fh>) { chomp; $linenumber++; if ( $_ eq $db_cmp_data ) { $begin_of_db = $linenumber; $check = 1; next; } if ( /.*Current Database.*/ && $check == 1) { $end_of_db = $linenumber; last; } } seek $fh,0,0; $check = 0; $linenumber = 0; while(<$fh>) { chomp; $linenumber++; if ( $linenumber == $begin_of_db ) { while(<$fh>) { chomp; $linenumber++; if ( $_ eq $table_struct_cmp_data ) { $begin_of_table = $linenumber; $check = 1; next; } if ( /.*Table structure.*/ && $check == 1) { $end_of_table = $linenumber; last; } } } } my $restore_file = "$name_of_table".".sql"; my $restore_fh; open($restore_fh, ">>$ENV{'HOME'}/$restore_file") or die "Kan $restore_file niet openen!\n"; seek $fh,0,0; $check = 0; $linenumber = 0; while(<$fh>) { $linenumber++; if ( $linenumber == $begin_of_table ) { while(<$fh>) { chomp; $linenumber++; last if $linenumber == $end_of_table; print $restore_fh "$_\n"; } } } close $fh; close $restore_fh;