쉘 명령어로 숫자의 자리수 통일 시키는 방법. 53 --> 053

foruses의 이미지

8
9
10
11

008
009
010
011

이렇게 변환하고 싶습니다. 원하는 세자리 수로요.

아래 스크립트에서 쉘 명령어로 어떻게 하면 될까요?

for a in {8..11}
do
b=????????????????????
echo $b
done

감사합니다.

익명 사용자의 이미지

printf "%.3d" 1

김정균의 이미지

%.3d 도 되는 군요. 전 %03d 로만 사용했었는데.. 0보다 . 이 타이핑 하기 쉽네요 :)

foruses의 이미지

#!/bin/sh

for a in {8..11}
do
b=printf "%.3d" $a
echo $b
done

이러면 에러나 나네요...ㅜㅜ

swish95의 이미지

#!/bin/sh
for a in {8..11}
do
b=`printf "%.3d" $a`
echo $b
done

------------------------------------------------------------
ProgrammingHolic

foruses의 이미지

네, ^^ 감사합니다.

김정균의 이미지

다음과 같이 해도 됩니다.

printf -v b "%.3d" "$a"
kamu의 이미지

오 좋은 정보 감사합니다~^^