Mi pregunta es ¿cómo puedo convertir todo el texto de mayúsculas a minúsculas y viceversa? Eso es cambiar los casos de todas las letras. Tiene que hacerse con un sed reemplazo de alguna manera.
Respuesta aceptada:
Aquí hay una forma directa en sed :
$ echo qWeRtY | sed -e 'y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/'
QwErTy
o una forma más corta con GNU sed , trabajando con cualquier carácter para el que exista una conversión de minúsculas<->mayúsculas en su configuración regional:
$ echo qWeRtY | sed -E 's/([[:lower:]])|([[:upper:]])/U1L2/g'
QwErTy
si puedes usar otras herramientas, como:
perl (limitado a letras ASCII):
$ echo qWeRtY | perl -pe 'y/[a-z][A-Z]/[A-Z][a-z]/'
QwErTy
perl (más generalmente):
$ echo 'αΒγ' | perl -Mopen=locale -pe 's/(p{Ll})|(p{Lu})/uc($1).lc($2)/ge'
ΑβΓ