^(.*) (.*) S+ S+( .*)+ 2 1
#!/usr/bin/perl use warnings; use strict; open IN,"<",$ARGV[0]; my $header=<IN>; my %name_hash; while(<IN>){ chomp; my @line_list=split/ /; $name_hash{"$line_list[0]$line_list[1]"}++; } close IN; open INPUT,"<",$ARGV[0]; my $header2=<INPUT>; print $header2; while(<INPUT>){ chomp; my @line_list=split/ /; if(!($name_hash{"$line_list[0]$line_list[1]"} && $name_hash{"$line_list[1]$line_list[0]"})){ print "$line_list[0]$line_list[1] $line_list[1]$line_list[0] "; }else{delete $name_hash{"$line_list[1]$line_list[0]"}} }