A resposta é usar a opção --use-lc-numeric
gawk.
--use-lc-numeric
This forces gawk to use the locale's decimal point character when parsing input data. Although the POSIX standard requires this behavior, and gawk does so when --posix is in effect, the default is to follow traditional behavior and use a period as the decimal point, even in locales where the period is not the decimal point character. This option overrides the default behavior, without the full draconian strictness of the --posix option.
Exemplo
Digamos que tenhamos este arquivo de dados:
$ cat t.txt
4,3;5,7
4,9;5,7
Para facilitar a visualização da saída, alterei essa linha em test.awk
:
print "Total: "$1+$2
Agora, quando você executá-lo usando o switch acima mencionado:
$ LC_ALL=fr_BE gawk --use-lc-numeric -f test.awk < t.txt
4,3
5,7
Total: 10
4,9
5,7
Total: 10,60