o awk converterá silenciosamente strings em números. Qual número? O número que você obtém digitando os dígitos decimais iniciais da string (pode ser apenas "" , se a string estiver vazia ou não começar com nenhum dígito decimal, como é o caso de "A" ) e convertendo-os para um número. "" é convertido em 0 . Então, todos esses seriam convertidos em 0 :
- "0"
- "0text"
- "texto"
- ""
o awk apenas converte strings em números dessa forma quando um número é necessário. Em "0text" + 1 , um número é necessário, então o resultado será 1 . Em apenas "0text" , um número não é necessário, portanto, nenhuma conversão ocorre. Em printf("%d", "0text") , um número é novamente necessário, então a string será convertida em um número.
O que você está procurando é uma função ord , que não é uma função nativa no awk. A documentação do gawk descreve como escrever tal função no awk.