免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: jlu204
打印 上一主题 下一主题

请问如何能让这样的字符串累加? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-07-28 17:04 |只看该作者
o(∩_∩)o...

论坛徽章:
0
12 [报告]
发表于 2008-07-28 17:43 |只看该作者
谢谢诸位帮忙。

好像我始终没有说明白我的意思。。还好。根据2楼的方法我总算写出来了 。。

刚开始学SHELL,方法比较笨。麻烦大家帮我把可以简化的地方再修改一下。



count=$1
name=$2

spname()
{
        arg0=$1
        arg1=${arg0:0:1}
        i=${arg0:1:2}
      
        k=1
        for ((i;i<=$count;i++))
        do

                if [ $i -lt 10 ];then
                        if [ $k -lt 2 ];then
                                x="$arg1""$i"${name:3}
                        else
                                #echo $k
                                 x="$arg1"0"$i"${name:3}
                        fi
                        ((++k))
                else
                        if [ $i -lt 10 ];then
                                x="$arg1"0"${name:3}"
                        else
                                x="$arg1""$i"${name:3}
                        fi
                fi
        name="$t$x"
        echo $name
        done
}

spname $name $count


举例:./atcon.sh 11 a01.file.bj
a01.file.bj
a02.file.bj
a03.file.bj
a04.file.bj
a05.file.bj
a06.file.bj
a07.file.bj
a08.file.bj
a09.file.bj
a10.file.bj
a11.file.bj

[ 本帖最后由 jlu204 于 2008-7-28 17:46 编辑 ]

论坛徽章:
0
13 [报告]
发表于 2008-07-28 17:54 |只看该作者
不错不错,缩进写的很潇洒。o(∩_∩)o...

论坛徽章:
0
14 [报告]
发表于 2008-07-28 18:28 |只看该作者

  1. #!/bin/bash
  2. count=$1
  3. name=$2

  4. spname()
  5. {
  6.         local name=$1
  7.         local count=$2
  8.         arg1=${name:0:1}
  9.         i=${name:1:2}
  10.         arg2=${name:3}
  11.         for ((;i<=$count;i++))
  12.         do
  13.                 printf "${arg1}%02d${arg2}\n" $i
  14.         done
  15. }

  16. spname $name $count
复制代码


printf就可以打印前置0

论坛徽章:
0
15 [报告]
发表于 2008-07-28 18:40 |只看该作者
seq -w $1|while read line;do echo $2|sed "s/01/$line/";done
walkerxk@www:~$ ./a.sh 11 a01.file.bj
a01.file.bj
a02.file.bj
a03.file.bj
a04.file.bj
a05.file.bj
a06.file.bj
a07.file.bj
a08.file.bj
a09.file.bj
a10.file.bj
a11.file.bj
walkerxk@www:~$
缺点是如果数字小于10,那么显示就是:
a1.file.bj
a2.file.bj
a3.file.bj
a4.file.bj
a5.file.bj
a6.file.bj
a7.file.bj
a8.file.bj
a9.file.bj
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP