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'
ΑβΓ