2016-10-31 6 views
0

Wie kann ich die Kopfzeile aus Daten1 während der Ausführung dieses Vergleichs von zwei Dateien data1 und data2, die in Spalte 2 übereinstimmen, drucken? Mein Code druckt nur Datenzeilen. Die Header werden unterschiedlich benannt und so wähle ich SpaltenpositionSo behalten Sie Header mit AWK

awk -F, 'FNR==NR {a[$2]=$0; next}; $2 in a {print a[$2]}' /data1 /data2 > /data3.txt 
+0

Siehe [fragen] und den fehlenden [mcve] posten. –

+0

Ich denke, $ 0 erzeugt hier ein Problem, $ 0 wird verwendet, um die vollständige Datei zu drucken, wenn Sie Beispiel-Eingabedaten teilen können, das wäre einfach, Ihre Frage zu beantworten. Ich konnte die Kopfzeile ohne NR == 1 drucken. Verwenden des Befehls unter - awk 'NR == FNR {Standort [$ 1] = $ NF; Nächster }; $ 8 in Ort {print $ 0, location [$ NF]} 'dep EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO LOC 7499 ALLEN VERKÄUFER 7698 20-FEB-81 1600 300 30 CHICAGO –

Antwort

0
$ awk -F, 'NR==1; FNR==NR{a[$2]=$0; next} ... 

verwenden wird die erste Zeile der ersten Datei drucken. Wenn Sie die Verarbeitung überspringen möchten, ersetzen Sie sie durch NR==1{print; next}.

Verwandte Themen