#process the list to find unique pairs while IFS=$TAB read rtr1 rtr2; do unset order while read rtr; do order=( ${order[@]-} $(echo $rtr) ) done< <(echo -e "$rtr1\n$rtr2" | sort -u) echo -e "$rtr1\t$rtr2\t${order[0]}\t${order[1]}" echo done < ~/tmp/neighbors2 | sort -u