欢迎 水中一条龙 加入本站!
 免费注册  用户登陆  汇款方式  汇款确认  产品报价  联系我们  帮助中心

加入收藏
设为首页
会员体系
申请VIP
网站首页 光盘超市 软件下载 技术文章 专题 用户中心 VIP会员 网站留言 论坛 站内搜索 卓越资源 源代码

域名查询 网站空间 域名主机 数据库空间

 
今天是:2012年05月18日 星期五  您现在位于: 首页 → 技术文章 → 批量将大写文件名转换成...
   批量将大写文件名转换成小写
作者:  出处:Unix爱好者家园unix-cd.com  更新时间: 2004年08月23日 


 首先介绍一下tr命令的一个用法tr string1 string2, 
string1/2指定同等数量的字符集合,输入字符在string1中 
寻找,若找到,则输出时替换成string2中相应位置的字符。 
#! /bin/csh 
if ( $#argv != 1 ) then 
echo " Usage: $0 -l|-u " 
exit 1 
endif 
if ( "$1" != "-l" && "$1" != "-u" ) then 
echo " Usage: $0 -l|-u " 
exit 1 
endif 
if ( "$1" == "-l" ) then 
foreach file ( * ) 
mv $file `echo $file | tr '[A-Z]' '[a-z]'
end 
else 
foreach file ( * ) 
mv $file `echo $file | tr '[a-z]' '[A-Z]'
end 
endif 

对于ksh,介绍一下typeset -l varname命令, 
这个命令的意思是$varname中的所有字符 
将被转换成小写。相应的是-u参数。 
#! /bin/ksh 
if [ $# -ne 1 ] 
then 
echo " Usage: $0 -l|-u " 
exit 1 
fi 
if [ $1 != "-l" -a $1 != "-u" ] 
then 
echo " Usage: $0 -l|-u " 
exit 1 
fi 
typeset $1 targetFile 
for file in * 
do 
targetFile="$file" 
mv $file $targetFile 
done 

再介绍一下expr string1 : string2命令,string1是待处理 
字符串,string2是一个正则表达式,输出将是匹配处理后的结果。 
之所以要多费点手脚,因为可能文件名目录名存在特殊字符, 
比如空格等,expr string1 : string2这个命令不管文件名目 
录名里有没有特殊字符都会输出原始名称。 
#! /bin/sh 
if [ $# -ne 1 ] 
then 
echo " Usage: $0 -l|-u " 
exit 1 
fi 
if [ $1 != "-l" -a $1 != "-u" ] 
then 
echo " Usage: $0 -l|-u " 
exit 1 
fi 
if [ "$1" = "-l" ] 
then 
for file in * 
do 
targetFile=`expr "+++$file" : '+++\(.*\)' | tr '[A-Z]' '[a-z]'
mv "$file" "$targetFile" 
done 
else 
for file in * 
do 
targetFile=`expr "+++$file" : '+++\(.*\)' | tr '[a-z]' '[A-Z]'
mv "$file" "$targetFile" 
done 
fi 
这里所有的示例都假设只处理了当前子目录下的本层的文件, 
如要进行目录树的处理,可以配合使用find命令。上面的 
+++仅仅是为了便于匹配处理排除一些干扰因素,没有别的 
实际意义。  

 
 (本文已被浏览 3998 次)
 发布人:sdccf
 → 推荐给我的好友
上篇文章:SCOUNIX基础讲座--第十二讲:使用TCP/IP
下篇文章:rsh命令的基本用法
 相关文章:
HP ProLiant服务器安装SCO默认引导字符串 Windows下Linux安全联机UltraEdit工具
远程网络安装RedHat Linux系统的方法 使用标准库函数的Trim
c语言中的结构(struct)和联合(union)简介 SCO OpenServer 5安装时添加HP Netraid 4M驱动程序包
trap命令的用法 Linux系统内存磁盘初始化技术详细解析
妙用触发器有效的管理 MySQL数据库 Linux操作系统安全防护技巧详细介绍
oracle trunc()函数的用法 Linux下用Chattr提高Ext3文件系统安全
用VMWare 实现4节点的Lustre 并行文件系统集群 Linux 指令篇:工作行程资讯与管理--pstree
unix--Tripwire 应用 在Linux里使用Windows的TrueType字体
Linux下搞定truetype字体的方法 Sco Unix下用dbxtra调试C程序
使用命令trap来捕捉信号 AIX如何安装/配置C/C++/Fortran语言License

相关搜索
查看百度中关于批量将大写文件名转换成小写的更多内容
查看google中关于批量将大写文件名转换成小写的更多内容
   文章分类
操作系统 |
SCO_UNIX  Sun_Solaris  IBM_AIX  HP_UX  Linux  BSD  Tru64_UNIX 
通用UNIX知识  Windows  Minix 
程序设计 |
Shell编程  C/C++  汇编  PHP  JAVA  Perl  Python 
ASP/HTML  XML  中间件 
数据库 |
Oracle  Informix  Sybase  Fox  DB2  SQL  MySQL 
PostgreSQL 
网络应用 |
网络应用 
计算机硬件 |
计算机主机  打印机  路由器  交换机  终端  磁带机  MO 
刻录机  终端服务器  调制解调器 
   文章评论
  → 评论内容 (点击查看)   共0条评论,每页显示5条评论   浏览所有评论
(没有相关评论)
  → 发表我的评论
您的姓名: 您的Email:
评论内容:
250字内
发表评论:      发表评论须知 →
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  • 关于我们 ┋  网站留言 ┋  网站地图 ┋  友情链接 ┋  与我在线 ┋  汇款确认 ┋  管理 ┋  TOP
    Unix爱好者家园  http://unix-cd.com/
    联系我们:sdccf@163.com
    腾讯QQ: 7644599
    Copyright (c) 2001-2011 Unix-cd.com. All Rights Reserved.