nawk ' NR==FNR { c = a[$1]; a[$1] = c?c" "$2:$2; next } { c = a[$1] if (c) { split(c,b) for (k in b) { p = $2<b[k]?$2" "$1" "b[k]:b[k]" "$1" "$2 if (!d[p]++) print p } } } ' file1 file1