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

BASH同时将大写转换为小写,反之亦然,bash,shell,sh,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您可以很容易地组合两行: $ tr '[:upper

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

#!/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

您可以很容易地组合两行:

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

$tr'[:upper:][:lower:][:upper:][:upper:][p>
tr'[A-Z]'[A-Z]'
也有效

自Bash 4.0以来,有一个双波浪形参数扩展
${parameter~~pattern}
,用于切换参数中所有字母的大小写。例如:

echo "${1~~}"
然而,据我所知,这一机制没有记录在案。因此,我不建议将其用于生产用途。依赖未记录的特性是一种不好的做法