Mein FileA
Inhalt ist:
LetterA LetterM 12
LetterB LetterC 45
LetterB LetterG 23
FileB
Inhalt ist:
LetterA 23 43 LetterZ
LetterB 21 71 LetterC
Ich möchte den originalen Eintrag von FileA
plus den Eintrag $2-$3
von FileB
schreiben, wenn
FileA $1 = FileB $1 && FileA $2 = FileB $4
.
Für die Ausgabe wie folgt:
LetterB LetterC 45 -50
Ich kann dies mit einer bash-Schleife tun
while read ENTRY
do
COLUMN1=$(cut -f 1 $ENTRY)
COLUMN2=$(cut -f 2 $ENTRY)
awk -v COLUMN1="$COLUMN1" -v COLUMN2="COLUMN2" -v ENTRY="$ENTRY"
'($1==COLUMN1 && $4==COLUMN2)
{print ENTRY,$2-$3}' FileB
done < FileA
Diese Schleife ist jedoch zu langsam. Gibt es eine Möglichkeit, dies mit awk ohne Schleife zu tun?
Um mehrere Eingabedateien zu nehmen -> ihren Inhalt abzugleichen -> gewünschte Ausgabe zu drucken.