length[([s])]
Return the length, in characters, of its argument taken as a
string, or of the whole record, $0, if there is no argument.
Не в байтах, в символах.
При этом разные реализации выдают разные значения. Я сравнил gawk, mawk и awk из набора plan9-утилит, портированных на Linux (не говорю GNU\Linux, потому что эти программы какбы замещают собой GNU?) 9base, вот что получилось:
$ gawk 'BEGIN {print length("ы")}'
1
$ /opt/plan9/bin/awk 'BEGIN {print length("ы")}'
2
$ mawk 'BEGIN {print length("ы")}'
2
По некоторым сведениям, в самом plan9 awk выдает единицу.
Возможно, mawk просто вызывает strlen для length?
Всякие багзиллы, исходники еще не смотрел, ночь уже.. А может быть, кто из линуксоидов знает, насколько тут допустимо выводить разные значения, ошибка ли это или просто особенность поведения?