como posso alterar a caixa do caractere (de baixo para cima e vice-versa)? ao mesmo tempo

como posso alterar a caixa do caractere (de baixo para cima e vice-versa)? ao mesmo tempo

entrada

   > a='Vikas'
   > echo $a
    Vikas

minha saída necessária é

echo $a | <some command>

vIKAS

Responder1

$ echo Vikas | LC_ALL=C tr a-zA-Z A-Za-z
vIKAS

O utilitário trtraduz caracteres; são necessários dois argumentos que representam conjuntos de caracteres; em seguida, ele copia a entrada padrão para a saída padrão, substituindo cada caractere encontrado no primeiro conjunto pelo caractere correspondente no segundo conjunto. Nesta aplicação, substitui letras minúsculas por letras maiúsculas e vice-versa. Veja opágina de manual de tr(1)para detalhes e para outros processamentos que trpodem ser executados.

Responder2

você pode usar o comando tr com as opções [:upper:] e [:lower:], assim:

echo "aBcDeF" |tr '[:upper:][:lower:]' '[:lower:][:upper:]'
AbCdEf

você também pode usar o comando sed (significa 'Editor de Stream'), assim:

echo "abcd ABCD" |sed 'y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/'

sed tem mais flexibilidade, significa que você pode definir qualquer mapeamento de caracteres. por exemplo, você pode converter números em letras de hackers com este comando:

echo "52065218802365" |sed 'y/0123456789/OIZEhSGLBP/'
SZOGSZIBBOZEGS

(referência de mapeamento de caracteres)

informação relacionada