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

BASH convert uppercase to lower case and vice versa at same time

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

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

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

例如

你好你好

你可以很容易地组合你的两条线:

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

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

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

echo "${1~~}"

然而,据我所知,这个机制没有记录。因此我不推荐它用于生产用途。依赖未记录的功能是一种不好的做法。