printf отступ слева от номера, отличного от нуля - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть a=10 var, который я хочу заполнить слева целым числом 1 с 5 отступами.

Вывод должен быть ниже:

11110

, когда я делаю:

printf "%05d\n" "${a}" 

, это дает мне 00010.

Ответы [ 3 ]

0 голосов
/ 07 декабря 2018

Согласно bash printf man-странице, она поддерживает только заполнение нулями, поэтому вы не можете напрямую использовать целочисленное заполнение, кроме нуля.

Вы можете сделать струнную печать или набивку, манипулируя

a=10
printf '%s\n' 111${a}

или

 printf "% 5d\n" "10" | tr ' ' '1'
0 голосов
/ 07 декабря 2018

Вы можете использовать эту инструкцию:

printf "%5d" "$a" | sed 's/ /1/g'

Вывод:

11110
0 голосов
/ 07 декабря 2018

Я думаю, что просто:

printf "% 5d\n" "10" | tr ' ' '1'

заполните пробелами, а затем замените их пробелами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...