Ich habe einen Datensatz mit 1994 Datensätze mit 13 Feldern. Ich versuche, das Kreuzprodukt des Datensatz unten zu bekommen:Cross Produkt von Datensätzen in AWK mit Joins
Dataset
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13
1 2 5 6 7 3 1 8 5 9 7 3 4
2 4 . . . . . . . . . . .
3 9 . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
1994 . . . . . . . . . . . .
Ausgang des Kreuzproduktes würde jeder Datensatz im Datensatz parallel sein (in kontinuierlicher Spalte) mit allen anderen Datensatz in der Datensatz wie unten dargestellt:
Erwartete Ausgabe
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
Wenn ich den Code ausführen: join file{,} -j99
ich sowohl die Aufzeichnungen Kreuzprodukt eine unter anderen. Wenn ich den gleichen Code für Datensätze unter 10 anwenden, dann ist die Ausgabe wie erwartet. Ich habe versucht, den Wert von -j auf 99999 und 9999999 zu ändern, aber keine Änderung in der Ausgabe.
ich ausgegeben als:
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13
. . . . . . . . . . . . .
. . . . . . . . . . . . .
Also, ich 1994 Datensätze haben, sollte ich: 1994 * 1994 = 3.976.036, aber ich habe zweimal dieser Zeilen wie die Datensätze einer unter einem anderen sind.
das gleiche sollte auch für 13 Felder funktionieren. Was ist dein Betriebssystem? – karakfa
[bearbeiten] Sie Ihre Frage, um eine [mcve] anzuzeigen, die prägnante, testbare Beispieleingabe und erwartete Ausgabe enthält. –
Ich denke, dass dein Problem auf Zeilenendungen zurückzuführen ist. Wenn Sie Ihre Datei aus der Windows-Umgebung kopiert haben, führen Sie 'dos2unix file' aus. – karakfa