Que tal:
while read code device state junk; do
if [[ $code == $message ]]; then
echo "Translated: $device-$state"
fi
done <CODE-LIST.txt
Usar processos extras (ou seja, bifurcar o awk toda vez) diminuirá muito a velocidade. read
lerá vários campos, separados por $IFS
(o valor padrão é todo o espaço em branco). A última variável listada receberá o restante da linha, se houver.
Estou apenas me perguntando de onde $message
deve vir. Fora do snippet de código, talvez?
EDITAR:
Se a parte do código ocorrer apenas uma vez na entrada, você poderá break
sair do loop assim que for encontrado; que também acelerará as coisas.