rmsd1.xvg: # GROup of MAchos and Cynical Suckers # @ title "RMSD" @ xaxis label "Time (ps)" @ yaxis label "RMSD (nm)" 1.0000000 0.0000009 20.0000000 0.1478001 40.0000000 0.1648600 60.0000000 0.1645018 80.0000000 0.1786710 100.0000000 0.2115960 #### rmsd2.xvg: # GROup of MAchos and Cynical Suckers # @ title "RMSD" @ xaxis label "Time (ps)" @ yaxis label "RMSD (nm)" 1.0000000 0.1000009 20.0000000 0.2478001 40.0000000 0.3648600 60.0000000 0.4645018 80.0000000 0.5786710 100.0000000 0.6115960 #### My code: #!/usr/bin/perl use strict; use warnings; # Open file1 to read open my $input_file1, '<', "rmsd1.xvg" or die qq{Failed to open "rmsd1.xvg" for writing: $!}; # Open file2 to read open my $input_file2, '<', "rmsd2.xvg" or die qq{Failed to open "rmsd2.xvg" for writing: $!}; # Open new file to write open my $out_file, '>', "out_file.xvg" or die qq{Failed to open "out_file.xvg" for writing: $!}; while(<$input_file1>) { next if /(^\s*$)|(^#)|(^@)/; my @columns1 = split; print $out_file join("\t", $columns1[0],$columns1[1], "\n"); } while(<$input_file2>) { next if /(^\s*$)|(^#)|(^@)/; my @columns2 = split; print $out_file join("\t", $columns2[1]), "\n"; } close($input_file1); close($input_file2); close($out_file); #### Output file: 1.0000000 0.0000009 20.0000000 0.1478001 40.0000000 0.1648600 60.0000000 0.1645018 80.0000000 0.1786710 100.0000000 0.2115960 0.1000009 0.2478001 0.3648600 0.4645018 0.5786710 0.6115960 #### Requested: 1.0000000 0.0000009 0.1000009 20.0000000 0.1478001 0.2478001 40.0000000 0.1648600 0.3648600 60.0000000 0.1645018 0.4645018 80.0000000 0.1786710 0.5786710 100.0000000 0.2115960 0.6115960