BASH同时将大写字母转换为小写字母,反之亦然

时间:2015-03-13 01:33:40

标签: bash shell sh

如何创建一个程序,从给定文件中同时将大写字母转换为小写字母,反之亦然? 我知道如何独立转换

#!/bin/sh
#Program convert upper to lower
cat $1 | tr '[:upper:]' '[:lower:]'

#!/bin/sh
#Program convert lower to upper
cat $1 | tr '[:lower:]' '[:upper:]'

e.g

hEllo to HeLLO

3 个答案:

答案 0 :(得分:3)

您可以轻松地将两行结合起来:

$ tr '[:upper:][:lower:]' '[:lower:][:upper:]' <<< "hEllo"
HeLLO

答案 1 :(得分:0)

从Bash 4.0开始,双波浪号参数扩展${parameter~~pattern}可以切换参数中所有字母的大小写。例子:

echo "${1~~}"

但是,据我所知,该机制尚未记录。因此,我不建议将其用于生产。依靠未记录的功能是一种不良做法。

答案 2 :(得分:-2)

tr '[A-Z]' '[a-z]'也有效!