欢迎
水中一条龙
加入本站!
免费注册
用户登陆
汇款方式
汇款确认
产品报价
联系我们
帮助中心
加入收藏
设为首页
会员体系
申请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.