LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 961|回复: 3

大小写转换的超难问题

[复制链接]
发表于 2008-4-9 20:44:01 | 显示全部楼层 |阅读模式
大小写转换的超难问题,我已经没招了

不要告诉我用tr,sed,awk,因为我这个mini系统上没有这些工具

只能使用shell本身的功能完成,不到哪位强人能帮忙
发表于 2008-4-9 21:04:11 | 显示全部楼层
expr 功能有不?没有就真没法了

#得到变量字符的个数
expr length $x
#用这个将变量的某个字符一个个拿出来
expr substr "$x" 1 1
expr substr "$x" 2 1
expr substr "$x" 3 1
...

########
具体程序就不写了,
思路,将对变量的字符一个个进行判断,是大写的话,
用个超大的casc语句,

然后再一个个拼起来
回复 支持 反对

使用道具 举报

发表于 2008-4-9 21:49:46 | 显示全部楼层
补充2楼的,printf能用么?能用就不写case了。
下面的代码可以将一个小写字母转成大写字母。

#!/bin/bash
num=$(printf "%d" "'$1")
if [ $num -lt 97 -o $num -gt 122 ]
then
        echo "please input lower case letter !"
        exit 1
else
        let num=$num-32
        echo -e \\x$(printf "%x" $num)
fi
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-10 12:12:53 | 显示全部楼层
谢了,搞定了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表