Tente isto:
$ awk -F'[ ,\t]' '
FNR == NR { a[$1] = $2 }
($NF in a) { print $0" -> "a[$NF] }
' target.txt -
Exemplo:
$ awk -F'[ ,\t]' '
FNR == NR { a[$1] = $2 }
($NF in a) { print $0" -> "a[$NF] }
' target.txt -
Jun 16, 2014 02:55:51.300286000 12:34:56:78:90:10 # Ctrl + D here
Jun 16, 2014 02:55:51.300286000 12:34:56:78:90:10 -> You
Explicação
-
-F[ ,\t]
: usamos vírgula, espaço ou tabulação como separadores de campo. -
FNR == NR { a[$1] = $2 }
:FNR == NR
true somente ao processar o primeiro arquivo. Portanto, com cada linha emtarget.txt
, salvamos o segundo campo em um array associativo, com o primeiro campo (endereço MAC) sendo o índice. -
($NF in a)
: Ao ler a entrada (-
apóstarget.txt
causaawk
lendo da entrada), se o último campo estiver na matriz associativaa
, imprimimos o resultado desejado.