Вот функция, которая задает значения влево или вправо с нулями в зависимости от параметров: Zeropad (значение, число, направление)
function zeropad(s,c,d) {
if(d!="r")
d="l" # l is the default and fallback value
return sprintf("%" (d=="l"? "0" c:"") "d" (d=="r"?"%0" c-length(s) "d":""), s,"")
}
{ # test main
print zeropad($1,$2,$3)
}
Некоторые тесты:
$ cat test
2 3 l
2 4 r
2 5
a 6 r
Тест:
$ awk -f program.awk test
002
2000
00002
000000
Это не полностью проверено поле битвы, поэтому странные параметры могут дать странные результаты.