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 tr
traduz 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 tr
podem 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