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