como posso alterar o caso do personagem (inferior para superior e vice-versa)? ao mesmo tempo [duplicado]

0

entrada

   > a='Vikas'
   > echo $a
    Vikas

minha saída obrigatória é

echo $a | <some command>

vIKAS
    
por Vikas Venna 22.11.2017 / 13:45

2 respostas

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

O utilitário tr traduz caracteres; leva dois argumentos representando 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 as letras minúsculas por letras maiúsculas e vice-versa. Veja a página de manual do tr (1) para detalhes e para outros processamentos que tr pode executar.

    
por 22.11.2017 / 13:51
3

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 fluxo'), assim:

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

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

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

(referência de mapeamento de caracteres)

    
por 22.11.2017 / 14:37