红联首页 凝聚Linux人的力量
菜鸟过关 | 精华文档 | 同城人(交友) | 我与Linux的故事 | Linux新闻 | Linux视频 | Linux人才 | 软件下载 | 大学校园 | English
发新话题
打印

批量重命名的问题

批量重命名的问题

小白我初学shell编程,自己练习写了如下的批量改名的脚本,但是对文件名中存在空格的文件无效,该如何解决呢?代码如下(关键代码为红色):
#!/bin/sh

##################################################
#rename one or more file names
##################################################

#display help information
displayHelp(){
        echo "FORMAT:"
        echo "    rename  [directory]  exetend  name"
        echo "FUNCTION:"
        echo "    rename many files one time"
        echo "PERAMETERS:"
        echo "    [directory]    : the directory of the files you want to rename "
        echo "    extend        : the extend name of the files you want to rename"
        echo "    name        : new file name  of the files you want to rename"
        exit 0;
}

#perameter missing or wrong
usage(){
        echo "usage:rename  [directory]  exetend  newname"
        echo "for more information:rename --help"
        exit 0
}

case "$#" in
#if number of perameters is 1
    1)
    if [ $1="--help" ]
    then
        displayHelp
    else
        usage
    fi
    ;;

#if number of perameters is 2
    2)
    directory='./'
    extend=$1
    newname=$2
    ;;

#if number of perameters is 3
    3)
    directory=$1
    extend=$2
    newname=$3
    ;;
    *)
    usage
    ;;
esac

count=1
for file in `ls *.$extend`
do
      mv "$file" "$newname$count.$extend"
      count=$(($count+1))
done
exit 0

#script ends

TOP

发新话题