Dateien mit awk vergleichen

8

Hi Ich habe zwei ähnliche Dateien (beide mit 3 Spalten). Ich würde gerne überprüfen, ob diese beiden Dateien die gleichen Elemente enthalten (aber in einer anderen Reihenfolge aufgeführt). Zuallererst möchte ich nur die ersten Spalten vergleichen

file1.txt

%Vor%

file2.txt

%Vor%

Wie kann ich es mit awk tun? Ich habe versucht, mich umzusehen, aber ich habe nur komplizierte Beispiele gefunden. Was, wenn ich auch die anderen beiden Spalten zum Vergleich hinzufügen möchte? Die Ausgabe sollte mir die Anzahl der übereinstimmenden Elemente geben.

    
Titus Pullo 25.02.2013, 11:22
quelle

2 Antworten

25

Um die gemeinsamen Elemente in beiden Dateien zu drucken:

%Vor%

Erläuterung:

NR und FNR sind awk Variablen, die die Gesamtanzahl der Datensätze bzw. die Anzahl der Datensätze in den aktuellen Dateien speichern (der Standarddatensatz ist eine Zeile).

%Vor%

Wenn Sie die ganzen Zeilen abgleichen möchten, verwenden Sie %code% :

%Vor%

Oder eine bestimmte Gruppe von Spalten:

%Vor%     
Chris Seymour 25.02.2013, 11:35
quelle
6

Um die Anzahl der übereinstimmenden Elemente zu drucken, verwenden Sie awk :

%Vor%

Ergebnisse mit Ihrer Eingabe:

%Vor%

Wenn Sie zusätzliche Spalten hinzufügen möchten (z. B. Spalten eins, zwei und drei), verwenden Sie ein pseudo-multidimensionales Array :

%Vor%

Ergebnisse mit Ihrer Eingabe:

%Vor%     
Steve 25.02.2013 11:41
quelle