• 文件名大小写转换的shell脚本


    方法1、
    //bug:当文件里有还有文件夹,这时,会把文件夹里最后一个文件名命名这个文件夹!
    for uppercase in `ls`
    do
    for lowercase in `ls $uppercase|tr [A-Z] [a-z]`
    do
    mv $uppercase $lowercase 2>/dev/null
    done
    done


    方法2、
    //bug: 就是有点会报错,当有文件夹,和该sh在要改文件名大小写的目录内:
    for file in `ls`
    do
    mv $file `echo $file|tr "[A-Z]" "[a-z]"`
    done

    方法3、

    #!/bin/sh
    for I in `ls` ;
    do
    C=$(echo $I|awk '{print toupper($I)}')
    mv $I $C
    done


    方 法6、
    //hen hao ,hen qiang da!

    #!/bin/sh

    ############################################################
    # this script will change file name recursively with option
    # -u: locase to upcase
    # -l: upcase to lowcase
    ############################################################

    hint () {
    echo " Usage: $0 [-l|-u] DIR1 [DIR2 DIR3...]
    -l to lowcase
    -u to upcase"
    exit 1
    }

    if test $# -lt 2; then
    echo "Too few arguments."
    hint
    fi

    while [ "$1" ]; do
    case $1 in
    -l) ACTION="lo"
    shift 1
    ;;
    -u) ACTION="up"
    shift 1
    ;;
    *) if test -d $1; then
    DIR="$DIR $1"
    else
    echo "no such directory --- $1"
    hint
    fi
    shift
    ;;
    esac
    done

    # echo $ACTION
    # echo $DIR


    FOUND=`find $DIR | sort -r`

    for i in $FOUND; do
    DN=`dirname $i`
    BS=`basename $i`
    loBS=`echo $BS | tr '[A-Z]' '[a-z]'`
    upBS=`echo $BS | tr '[a-z]' '[A-Z]'`

    NAME1=$DN/$BS

    if [ "$ACTION" = "lo" ]; then
    NAME2=$DN/$loBS
    elif [ "$ACTION" = "up" ]; then
    NAME2=$DN/$upBS
    fi

    if [ "$NAME1" = "$NAME2" ]; then
    echo "****: $NAME1 ---x--- $NAME2 identical!"
    else
    echo "- renaming $NAME1 --> $NAME2"
    mv $NAME1 $NAME2
    fi
    done


     find 得到结果并不能直接拿来处理,因为它是自上而下的,而目录一旦改名,子目录就全抓瞎了。而经过排序后(先处理最深的目录,由里向外)就能用了。
  • 相关阅读:
    H264源码分析(四)
    矩阵在编程中的一个小应用
    android listview 三种适配器设置
    Android SoundPool 的使用以及原理分析
    poj 2728 Desert King(最优比例生成树)
    MySQL 查询结果以百分比显示
    Android Application
    飘逸的python
    CSS教程:div垂直居中的N种方法[转]
    HQL: Hibernate查询语言
  • 原文地址:https://www.cnblogs.com/feihongwuhen/p/7170807.html
Copyright © 2020-2023  润新知