Aqui está um caminho reto em sed
:
$ echo qWeRtY | sed -e 'y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/'
QwErTy
ou de forma mais curta com o GNU sed
, trabalhando com qualquer caractere para o qual existe uma conversão de letras minúsculas < - > em sua localidade:
$ echo qWeRtY | sed -E 's/([[:lower:]])|([[:upper:]])/\U\L/g'
QwErTy
se você puder usar outras ferramentas, como:
perl
(limitado a letras ASCII):
$ echo qWeRtY | perl -pe 'y/[a-z][A-Z]/[A-Z][a-z]/'
QwErTy
perl
(mais geralmente):
$ echo 'αΒγ' | perl -Mopen=locale -pe 's/(\p{Ll})|(\p{Lu})/uc($1).lc($2)/ge'
ΑβΓ