BASH同时将大写转换为小写和将小写转换为大写

4

如何创建一个程序,从给定文件中同时将大写字母转换为小写字母,并将小写字母转换为大写字母? 我知道如何分别转换每个字母。

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

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

例如

将hEllo翻译为HeLLO

3个回答

5
你可以轻松地将两行代码合并为一行:
$ tr '[:upper:][:lower:]' '[:lower:][:upper:]' <<< "hEllo"
HeLLO

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

然而,据我所知,这种机制并没有被记录在案。因此,我不建议在生产环境中使用它。依赖未经记录的功能是一种不良实践。


-1

tr '[A-Z]' '[a-z]' 也可以工作!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接