Is there a way to replace the space character to 0 in printf padding for field width
Code used
printf(\"%010s\",\"this\");
Doesnt s
Indeed, the 0
flag only works for numeric conversions. You will have to do this by hand:
int print_padleftzeroes(const char *s, size_t width)
{
size_t n = strlen(s);
if(width < n)
return -1;
while(width > n)
{
putchar('0');
width--;
}
fputs(s, stdout);
return 0;
}
Try this:
printf("%010d%s", 0, "this");
what about
test="ABCD"
printf "%0$(expr 9 - ${#test})d%s" 0 $test
that will give you what you need too.
~:00000ABCD
or is you want to padd with other numbers just change
printf "%0$(expr 9 - ${#test})d%s" 1 $test
will give you
~:11111ABCD