[问题]01要怎么变成02?(解决)- -

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
kinzess
帖子: 319
注册时间: 2007-04-11 10:39
送出感谢: 0
接收感谢: 0

[问题]01要怎么变成02?(解决)- -

#1

帖子 kinzess » 2008-06-10 17:59

01要怎么变成02,03,04。。。0n。。。10,11,12?
001要怎么变成002,003,004。。。00n,010,011,012。。。100?
怎么变才方便呢?
谢谢
:P :P :P :P
厄。。
就是说像自增一样。。
不过表达有点不同。。。
不是1,2,3这种形式
而01或者001这种形式是自增不了的
上次由 kinzess 在 2008-06-11 0:10,总共编辑 5 次。
头像
qiang_liu8183
论坛版主
帖子: 10675
注册时间: 2006-09-10 22:36
来自: 北京
送出感谢: 1 次
接收感谢: 6 次

#2

帖子 qiang_liu8183 » 2008-06-10 18:01

:?:
看破、放下、自在、随缘、念佛
真诚、清净、平等、正觉、慈悲
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
送出感谢: 0
接收感谢: 7 次
联系:

#3

帖子 BigSnake.NET » 2008-06-10 18:15

代码: 全选

for i in `seq 100` ; do printf '%0.3d\n' $i ; done
这样?
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
kinzess
帖子: 319
注册时间: 2007-04-11 10:39
送出感谢: 0
接收感谢: 0

#4

帖子 kinzess » 2008-06-10 18:19

BigSnake.NET 写了:

代码: 全选

for i in `seq 100` ; do printf '%0.3d\n' $i ; done
这样?
就是这样~~
谢谢大蛇~~
头像
kinzess
帖子: 319
注册时间: 2007-04-11 10:39
送出感谢: 0
接收感谢: 0

#5

帖子 kinzess » 2008-06-10 18:27

类似自增的效果上面的可以达到
那如果自减呢?
头像
kinzess
帖子: 319
注册时间: 2007-04-11 10:39
送出感谢: 0
接收感谢: 0

#6

帖子 kinzess » 2008-06-10 18:29


找到了~~
seq -f "%02g" 100 -1 1

seq果然好用~~再次谢谢大蛇
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

#7

帖子 bones7456 » 2008-06-10 18:35

哈哈.
关注我的blog: ε==3
头像
kinzess
帖子: 319
注册时间: 2007-04-11 10:39
送出感谢: 0
接收感谢: 0

#8

帖子 kinzess » 2008-06-10 18:52

在问一下~~有没有办法做到
i++;
i--;
这样的效果的方法?
因为我不想一直用循环。。。 :oops: :oops: :oops: :oops:

因为我有可能用到
当使用001时候我可能同时要用到02
而当使用002时我可能同时要用到03
或者用010时用到07;
当使用到009是要用到08;
而用循环这样的效果无法达到。。
上次由 kinzess 在 2008-06-10 19:04,总共编辑 1 次。
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12
送出感谢: 0
接收感谢: 0
联系:

#9

帖子 solcomo » 2008-06-10 19:01

for (( i=100 ; i > 0 ; i--)) ; do printf '%0.3d\n' $i ; done
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
vvvli
帖子: 441
注册时间: 2006-10-26 7:02
送出感谢: 0
接收感谢: 0

#10

帖子 vvvli » 2008-06-10 19:07

kinzess 写了:在问一下~~有没有办法做到
i++;
i--;
这样的效果的方法?
因为我不想一直用循环。。。 :oops: :oops: :oops: :oops:

因为我有可能用到
当使用001时候我可能同时要用到02
而当使用002时我可能同时要用到03
或者用010时用到07;
当使用到009是要用到08;

比如
x=10
echo $((x=x+1))
x=`printf '%0.3d\n' $x`
大概就是这样。
头像
kinzess
帖子: 319
注册时间: 2007-04-11 10:39
送出感谢: 0
接收感谢: 0

#11

帖子 kinzess » 2008-06-10 19:16

vvvli 写了:
kinzess 写了:在问一下~~有没有办法做到
i++;
i--;
这样的效果的方法?
因为我不想一直用循环。。。 :oops: :oops: :oops: :oops:

因为我有可能用到
当使用001时候我可能同时要用到02
而当使用002时我可能同时要用到03
或者用010时用到07;
当使用到009是要用到08;

比如
x=10
echo $((x=x+1))
x=`printf '%0.3d\n' $x`
大概就是这样。
这样之后x=011
然后呢?
我要x=012呢?
如果这个是循环的话x=011,因为这是个八进制的数,那下一步如果遇到有8,9的话
echo $((x=x+1))就会出错
例如
bash: 008: value too great for base (error token is "008")
头像
kinzess
帖子: 319
注册时间: 2007-04-11 10:39
送出感谢: 0
接收感谢: 0

#12

帖子 kinzess » 2008-06-10 19:24

我现在用的恶心方法是
把数字前面的0去掉
然后自增或者自减。。。
搞完再把0加回去。。。
:( :( :( :(
头像
laborer
帖子: 1016
注册时间: 2005-10-25 11:15
送出感谢: 0
接收感谢: 1 次
联系:

#13

帖子 laborer » 2008-06-10 23:12

代码: 全选

$ a=0089
$ a=`printf "%0${#a}d" $(dc -e "$a 1 + p")`
$ echo $a
0090
$ a=`printf "%0${#a}d" $(dc -e "$a 1 + p")`
$ echo $a
0091
hreiser@oakland:~$ killall -9 wife
police@oakland:~$ sudo find / -user hreiser
court@oakland:~$ sudo mv /home/hreiser /jail/
court@oakland:~$ sudo usermod -d /jail/hreiser -s "/usr/sbin/chroot /jail/" hreiser
头像
kinzess
帖子: 319
注册时间: 2007-04-11 10:39
送出感谢: 0
接收感谢: 0

#14

帖子 kinzess » 2008-06-11 0:12

谢谢ls的
真是没有做不到的只有想不到的阿 :P :P :P
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11
送出感谢: 0
接收感谢: 0

#15

帖子 yjcong » 2008-06-13 7:21

如果要生成 abde01.jpg abced02.jpg abced03.jpg 该怎么做啊?如果想把生成的东西写到文件里又该如何??
回复

回到 “Shell脚本”