Ich habe diese Frage/Antwort bei Google gefunden und es scheint sich auf einen sehr spezifischen Datensatz in einer anderen Frage (How to merge two files using AWK?) zu beziehen. Was folgt, ist die Antwort, nach der ich gesucht habe (und die ich für die meisten Leute halten würde), d.h. einfach jede Zeile aus zwei verschiedenen Dateien mit AWK zu verketten. Obwohl Sie wahrscheinlich einige UNIX-Dienstprogramme wie beitreten oder Paste, AWK ist natürlich viel flexibler und leistungsfähiger, wenn Sie die gewünschte Ausgabe, anders nutzen könnte durch die Verwendung wenn Aussagen oder zur Änderung der OFS (was sein kann schwierig, abhängig von dem Programm zu tun, siehe unten), zum Beispiel der Ausgabe in eine viel ausdruck Weise (eine wichtige Überlegung für Shell scripters verändern)
für einfache Zeile-für-Zeile-Verkettung:
awk 'FNR==NR { a[FNR""] = $0; next } { print a[FNR""], $0 }' file1 file2
.
Dies emuliert die Funktion eines numerisch indizierten Arrays (AWK hat nur assoziative Arrays) durch Verwendung der impliziten Typkonvertierung. Es ist relativ ausdrucksstark und leicht zu verstehen.
Mit zwei Dateien test1 und test2 mit den folgenden Zeilen genannt:
test1:
line one
line two
line three
test2:
line four
line five
line six
ich dieses Ergebnis:
line one line four
line two line five
line three line six
Abhängig von ho Wenn Sie die Werte zwischen den Spalten in der Ausgabe verbinden möchten, können Sie das entsprechende Ausgabefeldtrennzeichen auswählen. Hier ist ein Beispiel mit Ellipsen (...) Trennen der Spalten:
awk 'BEGIN { OFS="..."} FNR==NR { a[(FNR"")] = $0; next } { print a[(FNR"")], $0 }' test1 test2
dieses Ergebnis Nachgeben:
line one...line four
line two...line five
line three...line six
ich zumindest hoffen, dass diese inspiriert Sie alle Vorteile der Kraft der AWK zu nehmen!
Kent, ausgezeichnete Erklärung; vielen Dank. Ich war mir nicht bewusst, dass die "FNR == NR" eine Art "if" -Anweisung bildete. Das ist genau das, was ich brauche, um voranzukommen. Vielen Dank, dass Sie sich die Zeit genommen haben zu helfen! – jkovba