tente
awk 'BEGIN { FS="|"}
FILENAME=="code-desc.txt" { descr[$1]=$2 ; next }
{ for(i=1;i<=FS;i++) printf "%s|",descr[$i] ; printf "\n" ;} ' code-desc.txt datafile.txt
onde
-
BEGIN { FS="|"}
diz ao awk para usar | como separador -
FILENAME=="code-desc.txt" { descr[$1]=$2 ; next }
ao analisar code-desc.txt, construir matriz. - para todas as outras linhas, imprima a descrição do campo.
observe:
- respeita a ordem do arquivo (code-desc.txt antes do arquivo de dados.txt), O
- código entre aspas simples pode ser colocado em um script awk,
- isso não funcionará se você tiver um código errado.