Por que essa instrução awk não está funcionando?

0
awk 'BEGIN { COLM_FMT = "%-8s, %-8s, %-8s, %-8s, %-8s, %-8s, %-8s, %-8s, %-8s, %-8s,    %-8s, %-8s, %-8s, %-8s,\n" }
           { printf COLM_FMT, ${totals[0]}, ${totals[1]}, ${totals[2]}, ${totals[3]}, ${totals[4]}, ${totals[5]}, ${totals[6]}, ${totals[7]},
           ${totals[8]}, ${totals[9]}, ${totals[10]}, ${totals[11]}, ${totals[12] }'

Por que a instrução awk acima está me dando os seguintes erros:

'awk: erro de sintaxe perto da linha 2' 'awk: declaração ilegal perto da linha 2'

Isso está dentro de um script bash.

    
por cardycakes 08.11.2013 / 12:48

1 resposta

0

Você está colocando variáveis bash em um script awk, mas colocando o corpo do awk entre aspas simples, o que impede a expansão da variável.

Você sabe que o bash tem um comando printf? (digite help printf em um prompt bash)

fmt="%-8s, %-8s, %-8s, %-8s, %-8s, %-8s, %-8s, %-8s, %-8s, %-8s,    %-8s, %-8s, %-8s, %-8s,\n"
printf "$fmt" "${totals[@]}"
    
por 08.11.2013 / 19:32