答老男孩培训班学生典型问题一例

问题:某学生发问:
XX(11XXX)  10:22:26
[root@client ~]# for ((i=001;i<=003;i=i+1));do echo $i;done
1
2
3
请教如何打印出001 002 003 这样的格式呢

解答:
思路决定出路!同学们要多思考啊!
本题解决办法太多,举几个例子和初学运维的兄弟分享。

法0:{}

[root@C58 scripts]# echo 00{1..3}
001 002 003

法1:seq法
[root@test ~]#  seq -w 100 |sed -n '1,3p'
001
002
003
此法效率不高。可用下面法4替代。
尽量让第一次的结果越接近最终结果越好。

法2:seq -f法
[root@test ~]#  seq -f %03g 3
001
002
003

法3:for循环
[root@test ~]# for ((i=1;i<=3;i=i+1));do echo 00$i;done
001
002
003

法4:seq加sed加正则法
[root@test ~]#  seq -w 101 103|sed -e 's/^1/0/g'
001
002
003

法5:
[root@test ~]# for ((i=1;i<=3;i=i+1));do printf "%03d\n" $i;done
001
002
003

法6:sed命令中&命令用法,增加或修改一个字符串
[root@test ~]# seq 3|sed  's/^[0-9]/00&/g'
001
002
003

法7:sed命令中()和\1的用法,rewrite里也有类此用法
[root@test ~]# seq 3|sed  's/\(^[0-9]\)/00\1/g'
001
002
003

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值