批量替换目录下面的文件为大写或小写

简介:

#!/bin/sh
# Usage: ./loworup.sh <-l | -u> <target_directory>
#
# 碌诙镁脨虏伪脴毛目录拢卢碌脷禄脨虏脦赂露篓-l禄貌#
if [ $# -ne 2 ] ; then
     echo "Usage: ${0} <-l | -u> <target_directory>"
     exit 1
fi
if [ ! -d ${2} -o "${1}" != "-l" -a "${1}" != "-u" ] ; then
     echo "Usage: ${0} <-l | -u> <target_directory>"
     exit 1
fi
exec 1>/dev/null 2>&1
dir=`dirname "${2}"`
cd ${dir}
if [ "${1}" = "-l" ] ; then
     base=`basename "${2}" | tr "[A-Z]" "[a-z]"`
else
     base=`basename "${2}" | tr "[a-z]" "[A-Z]"`
fi
mv -f "`basename ${2}`" "${base}"
for entry in `find ${base}`
do
     before="."
     #
     # 脮赂枚篓脪5for in脫路篓拢卢脫驴崭帽指么卢脣脪虏禄脛麓娄脌脛些卤戮脡脙脳麓酶    # 赂帽驴录脧拢卢脢脫小BUG
     #
     for after in `echo "${entry}" | sed -e 's,/, ,g'`
     do
         tmp_entry="${before}/${after}"
         if [ "${1}" = "-l" ] ; then
             before=`echo "${tmp_entry}" | tr "[A-Z]" "[a-z]"`
         else
             before=`echo "${tmp_entry}" | tr "[a-z]" "[A-Z]"`
         fi
         mv -f "${tmp_entry}" "${before}"
     done
done

 

 

 

使用sh -x 2.sh -l /root/test   把这个目录下面的全部替换为小写了

sh -x 2.sh -u /root/test   把这个目录下面的全部替换为大写了

 

 本文转自 liang3391 51CTO博客,原文链接:http://blog.51cto.com/liang3391/577778



相关文章
|
7月前
文件(夹)批量重命名数字、字母、日期、中文数字大写小写
该内容是一个指南,介绍如何使用一个工具批量重命名文件。首先,提供了两个下载链接:百度网盘和蓝奏云,分别附有提取码。接着,目标是将5个文件以大写中文数字“贰”开始重命名。步骤包括:打开工具的“文件批量复制”功能,点击重命名按钮,拖入要重命名的文件,选择重命名类型为“大写中文数字”,设置格式如“db_zh_ + 中文大写数字”,然后执行操作。如果需要更改文件后缀,可勾选相应选项并输入新后缀。最后,展示了重命名前后的文件列表。
|
7月前
|
Shell Perl
用sed如果原字符串或新字符串中包含特殊字符(如正斜杠/或其他特殊字符),需要用\进行转义
用sed如果原字符串或新字符串中包含特殊字符(如正斜杠/或其他特殊字符),需要用\进行转义
803 7
|
7月前
|
存储 Unix Linux
Python将多个文件的名称或后缀名由大写字母修改为小写的方法
Python将多个文件的名称或后缀名由大写字母修改为小写的方法
|
Shell
SHELL下如何去掉字串里的空格(或指定字符)
SHELL下如何去掉字串里的空格(或指定字符)
923 0
|
数据采集 移动开发
一日一技:在字符串中批量替换单个字符
一日一技:在字符串中批量替换单个字符
145 0
|
Shell
用shell把所有文件名修改为小写
用shell把所有文件名修改为小写
130 0
Win软件 - 使用 Sublime Text 将含下划线的字符串批量替换为驼峰命名法格式的字符串
Win软件 - 使用 Sublime Text 将含下划线的字符串批量替换为驼峰命名法格式的字符串
378 0
目录字串最后都不要带目录分隔符
目录字串最后都不要带目录分隔符
130 0
|
PHP
PHP快速实现删除空、制表符、换行符等特殊字符(两种方法)
上一篇文章《PHP数学函数实践四:将浮点数从零舍入到指定的小数位数》给大家介绍了怎么浮点数从零舍入到指定的小数位数,感兴趣的朋友可以了解学习一下~ 那么本文将给大家介绍解决一个在平时开发过程中非常常见的一个问题,就是如何从字符串中删除特殊字符! 在本文涉及到的特殊字符包括:空(“\0”)、水平制表符(“\t”) 、换行符(“\n”) 、垂直制表符(“\v” ) 和ESC(“\e”)。
412 0
|
Shell Linux Perl
在Linux命令行中进行大小写字符转换
在Linux命令行中进行大小写字符转换
在Linux命令行中进行大小写字符转换