Hallo alle zusammen!

Bei folgender Aufgabe komme ich nicht weiter.
Hier ist der zu verarbeitende Inhalt einer Datei (die Zeilennummern gehören nicht zum Inhalt, nur für die nachfolgende Erläuterung der Aufgabenstellung) :

01. AAA;AAB;10
02. AAB;AAA;12
03. AAA;FAC;26
04. AAA;FAV;15
05. DAD;HHZ;89
06. AAA;HOI;33
07. AAA;MKP;59
08. AAA;PPT;45
09. AAA;RRR;88
10. AAA;TTQ;87
11. HHZ;DAD;89
12. MKP;AAA;59

Diese Datei muss eingelesen werden, ausgegeben müssen alle vorhandenen Zeilen und die Zeilen, wo $1 der Zeile n nicht gleich $2 der Zeile m ist und $2 der Zeile n nicht gleich $1 der Zeile m ist, und in dieser Reihenfolge: $2;$1;$3.

Also, Zeile 1 und Zeile 2 müssen nicht angefasst werden, weil da findet man in beiden Zeilen Werte AAA und AAB, nur verdreht. Genauso Zeile 5 und Zeile 11, und Zeile 7 und Zeile 12.
Alle anderen Zeilen haben sozusagen, keine gespiegelten "Doppelgänger" und für Sie muss so ein "Doppelgänger" generiert und der Datei hinzugefügt werden (an welcher Stelle, spielt keine Rolle).

Das ist der gewünschte Output:

01. AAA;AAB;10
02. AAB;AAA;12
03. AAA;FAC;26
04. AAA;FAV;15
05. DAD;HHZ;89
06. AAA;HOI;33
07. AAA;MKP;59
08. AAA;PPT;45
09. AAA;RRR;88
10. AAA;TTQ;87
11. HHZ;DAD;89
12. MKP;AAA;59
13. FAC;AAA;26
14. FAV;AAA;15
15. HOI;AAA;33
16. PPT;AAA;45
17. RRR;AAA;88
18. TTQ;AAA;87

Könnte mir bitte jemand helfen? Alle meine Versuche bleiben bisher erfolglos. Muss auch nicht unbedingt mit AWK erledigt werden. Danke!