我是一个bash新手。我想以x
数字格式将数字1回显到n
。例如,让我们考虑n=3
:5应该变为005,13应该变为013,110应该保持为110.
实现这一目标的一种方法是采用这种结构:
for i in $(seq 1 120)
do
if [ "$i" -lt "10" ]
then
echo "00$i"
elif [ "$i" -gt "99" ]
then
echo "$i"
else
echo "0$i"
fi
done
但它非常难看,并且在更改n
(位数)的值时实际上并不灵活。我宁愿有一个只用n
数字进行格式化的函数吗?是否已经内置了功能?如果没有,你能帮我创建这样的功能吗?
答案 0 :(得分:6)
使用printf
:
for i in {1..120} ; do
printf '%03d\n' $i
done
%
启动格式字符串d
表示整数 3
表示 length = 3 0
表示零填充 \n
是换行符