5

How can I print numbers right justified in Perl, like this:

a=   1
b=  22
c= 333
d=4444  
Jonathan Leffler
  • 730,956
  • 141
  • 904
  • 1,278
gthm atla
  • 65
  • 1
  • 4

3 Answers3

10

Try like this.

printf ("%4d\n",1);
printf ("%4d\n",11);
printf ("%4d\n",111);
printf ("%4d\n",1111);
Pavunkumar
  • 5,147
  • 14
  • 43
  • 69
5

The official resource for this is perldoc -f sprintf , which has a nice summary of examples:

For example:

  printf '<% d>',  12;   # prints "< 12>"
  printf '<%+d>',  12;   # prints "<+12>"
  printf '<%6s>',  12;   # prints "<    12>"
  printf '<%-6s>', 12;   # prints "<12    >"
  printf '<%06s>', 12;   # prints "<000012>"
Zaid
  • 36,680
  • 16
  • 86
  • 155
2

Use printf with a precision and a space as "filler":

printf "a=% 4d\n", 1;
printf "b=% 4d\n", 22;
Mat
  • 202,337
  • 40
  • 393
  • 406