如何在bash中填充文本

时间:2014-05-23 03:37:51

标签: bash

我想在下面的

中使用bash shell创建一个文本文件
+9990000001
+9990000002
+9990000003
+9990000004
...

前四个字符/数字是固定的(+999),其他7位数字从0000001到9999999开始

我有以下代码,但它没有执行00000000填充。

startnum=0;
endnum=9999999;

for (( i=$startnum; i<=$endnum; i++ )) ; do 
echo $i ;
done

我怎么做前缀+999?

3 个答案:

答案 0 :(得分:3)

您需要使用printf来填充0s

startnum=1
endnum=9999999

for (( i=startnum; i<=endnum; i++ )) ; do 
  printf "+999%07d\n" $i
done

输出

+9990000001
+9990000002
+9990000003
+9990000004
+9990000005
+9990000006
...

答案 1 :(得分:1)

你可以写:

startnum=90000000
endnum=99999999

for (( i = startnum; i <= endnum; i++ )) ; do 
    echo +99$i
done

(我 建议简单地将所有三个9放在开头,但10 10 -1超出32位有符号整数的范围,所以我&# 39;我不确定算术部分是否有效。)

答案 2 :(得分:1)

我的版本:

seq -f "+%10.0f" 9990000001 9999999999

seq -f "+999%07.0f" 9999999