Ich möchte zwei Spalten aus zwei verschiedenen Dateien mit awk verbinden. Diese Dateien aussehen (A, B, C, 0, 1, 2, usw. sind Spalten)Join zwei Spalten aus verschiedenen Dateien mit awk
file1:
A B C D E F
FIL2:
0 1 2 3 4 5
Und ich möchte in der Lage sein wählen Sie beliebige Spalten auf meinem ouput, etwas von der Form:
Ie, möchte ich die Ausgabe sein:
A C E 4 5
Ich habe eine Million Antworten mit dem folgenden awk-Code (und sehr ähnlichen) gesehen, die keine Erklärung bieten. Aber keiner von ihnen adressiert das genaue Problem, das ich lösen will:
awk 'FNR==NR{a[FNR]=$2;next};{$NF=a[FNR]};1' file2 file1
awk '
NR==FNR {A[$1,$3,$6] = $0; next}
($1 SUBSEP $2 SUBSEP $3) in A {print A[$1,$2,$3], $4}
' A.txt B.txt
Aber keiner von ihnen scheint zu tun, was ich will, und ich bin nicht in der Lage, sie zu verstehen.
Also, wie kann ich mit awk die gewünschte Ausgabe erreichen? (Und bitte, eine Erklärung bieten, Ich möchte lernen, tatsächlich)
Hinweis: Ich weiß, ich kann wie
paste <(awk '{print $1}' file1) <(awk '{print $2}' file2)
dies mit etwas tun, wie gesagt, ich versuche, awk zu lernen und verstehen .
Ich verstehe nicht, was Sie von den zwei Dateien bekommen möchten .... können Sie gewünschte Ausgabe pls hinzufügen? – Kent
Es ist da. Entschuldigung, wenn es nicht sehr klar war. Ich habe die Frage bearbeitet (die Ausgabe, die ich will, ist ACE 4 5, wo A, B, C ... 0, 1, 2 ... Spalte sind. – Scarlehoff
von Join bedeuten Sie die Spalten nebeneinander Seite an Seite basierend auf Zeile einfügen Für den Beitritt benötigen Sie Schlüsselwerte, die in den Beispiel-Eingabedateien fehlen. – karakfa