Unix commands(25)

来源:未知 责任编辑:责任编辑 发表时间:2013-11-17 14:40 点击:

         # we have less than 3 arguments. Print the help text:
            if [ $# -lt 3 ] ; then
                 cat <
                 ren -- renames a number of files using sed regular expressions
                 USAGE: ren 'regexp' 'replacement' files...
                 EXAMPLE: rename all *.HTM files in *.html:
              ren 'HTM$' 'html' *.HTM
                 HELP
              exit 0
            fi
            OLD="$1"
            NEW="$2"
          # The shift command removes one argument from the list of
          # command line arguments.
          shift
          shift
          # $* contains now all the files:
         for file in $*; do
          if [ -f "$file" ] ; then
             newfile=`echo "$file" | sed "s/${OLD}/${NEW}/g"`
             if [ -f "$newfile" ]; then
                  echo "ERROR: $newfile exists already"
             else
                  echo "renaming $file to $newfile ..."
                  mv "$file" "$newfile"
              fi
            fi
           done
        这是一个复杂一些的例子。让我们详细讨论一下。第一个if表达式判断输入命令行参数是否小于3个 (特殊变量$# 表示包含参数的个数) 。如果输入参数小于3个,则将帮助文字传递给cat命令,然后由cat命令将其打印在屏幕上。打印帮助文字后程序退出。 如果输入参数等于或大于3个,我们就将第一个参数赋值给变量OLD,第二个参数赋值给变量NEW。下一步,我们使用shift命令将第一个和第二个参数从 参数列表中删除,这样原来的第三个参数就成为参数列表$*的第一个参数。然后我们开始循环,命令行参数列表被一个接一个地被赋值给变量$file。接着我 们判断该文件是否存在,如果存在则通过sed命令搜索和替换来产生新的文件名。然后将反短斜线内命令结果赋值给newfile。这样我们就达到了我们的目 的:得到了旧文件名和新
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • /etc/fstab 详解
  • nginx主主集群
  •  LVS-NAT和LVS-DR模式的实现详解
  •  RHCE考试之磁盘配额
  • 学习笔记:ACL详解
  •  LVM逻辑卷管理器
  • suse linux双网卡双网关配置
  •  Nginx主主负载均衡架构
  • ubuntu学习Mysql

快速直达

操作系统导航

LinuxWindows虚拟机
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1