Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103647153
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-19 17:54:42

作者:lg   来自:

#! /bin/sh
# Usage: ./low.sh <-l | -u>

#./low.sh -l directory 为全部转化为小写
#./low.sh -u directory 为全部转化为大写
#
# 第二形参必须是目录,第一形参指定-l或-u
#
if [ $# -ne 2 ] ; then
echo "Usage: ${0} <-l | -u> "
exit 1
fi

if [ ! -d ${2} -o "${1}" != "-l" -a "${1}" != "-u" ] ; then
echo "Usage: ${0} <-l | -u> "
exit 1
fi

dir=`dirname "${2}"`
cd ${dir} > /dev/null 2>&1
if [ $? -ne 0 ] ; then
echo "Error: checking your ${dir}"
exit 1
fi

exec 1>/dev/null 2>&1

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}" > /dev/null 2>&1

for entry in `find ${base}`
do
before="."
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

阅读(600) | 评论(0) | 转发(0) |
0

上一篇:字符串替换

下一篇:一个够黑的脚本!!

给主人留下些什么吧!~~