#! perl -slw use strict; $/ = ";\n"; ## Paragraph mode Blocks that end with ';' ## Assumes there are no semicolons at the end of lines in the comments. while( ) { m[ .* ## skip stuff before the INSERT ## Capture the dest table name and the entire dest fields list INSERT \s+ INTO \s+ ( \S+ ) \s* \( \s* ( [^)]+ ) \s* \) \s* ## Capture the entire src fields list & source table name SELECT \s+ ( .+? ) \s+ FROM \s+ ( .+? ) \s* ; ]sx or warn "'$_' did not match; ignored" and next; my( $dTable, $dFields, $sFields, $sTable ) = ( $1, $2, $3, $4 ); my @dFields = split '\s*,\s*', $dFields; my @sFields = split '\s*,\s*', $sFields; printf "%-60s %-60s\n", $dTable . '.' . $dFields[ $_ ], $sTable . '.' . $sFields[ $_ ] for 0.. $#dFields; print "\n"; } #### C:\test>581226.pl nokia_scp_address_camel_1_raw.nc_id nokia_scp_address_camel_raw.nc_id nokia_scp_address_camel_1_raw.scp_address_id nokia_scp_address_camel_raw.scp_address_id nokia_scp_address_camel_1_raw.day nokia_scp_address_camel_raw.day nokia_scp_address_camel_1_raw.sgsncamelactivepdpcontexts nokia_scp_address_camel_raw.sgsncamelactivepdpcontexts nokia_scp_address_camel_1_raw.sgsncamelactivesmses nokia_scp_address_camel_raw.sgsncamelactivesmses nokia_scp_address_camel_1_raw.sgsncamelcapdialforpdpcontexts nokia_scp_address_camel_raw.sgsncamelcapdialforpdpcontexts nokia_scp_address_camel_1_raw.sgsncamelcapdialoguesforsmses nokia_scp_address_camel_raw.sgsncamelcapdialoguesforsmses nokia_scp_address_camel_1_raw.sgsncamelcapfailwithpdpcontext nokia_scp_address_camel_raw.sgsncamelcapfailwithpdpcontext