shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Converter de maiuscula para minuscula com SED


From: Paulo
Subject: Re: [shell-script] Converter de maiuscula para minuscula com SED
Date: Thu, 14 Feb 2019 19:33:34 -0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.0

Olá Bruno, com sed, além dos escapes que o Sidney mostrou, tem o comando 'y',
mas ele substitui tudo, sem controle.

echo ABCA|sed 'y/A/a/'
aBCa

echo ABCA|sed 'y/A/a/1'
sed: -e expressão #1, caractere 7: há caracteres sobrando após o comando


Substitui o primeiro caracter da primeira sequência pelo primeiro da segunda
e assim por diante. (tripa copiada do pdf do Aurélio :) 
https://aurelio.net/sed/livro/)

sed 
'y/ABCDEFGHIJKLMNOPQRSTUVWXYZÁÀÃÂÉÊÍÓÕÚÜÇ/abcdefghijklmnopqrstuvwxyzáàãâéêíóõúüç/'


Os escapes permitem muito mais controle no comando 's' (copiado do info sed).
Mas só no GNU sed.

   Finally, as a GNU 'sed' extension, you can include a special sequence
made of a backslash and one of the letters 'L', 'l', 'U', 'u', or 'E'.
The meaning is as follows:

'\L'
     Turn the replacement to lowercase until a '\U' or '\E' is found,

'\l'
     Turn the next character to lowercase,

'\U'
     Turn the replacement to uppercase until a '\L' or '\E' is found,

'\u'
     Turn the next character to uppercase,

'\E'
     Stop case conversion started by '\L' or '\U'.


Essa substituição sed -r 's/[[:upper:]]*/[[:lower:]]/'
não dá certo porque a segunda parte do comando 's' é string e não ER.

echo aBC|sed -r 's/[[:upper:]]/[[:lower:]]/'
a[[:lower:]]C

echo aBC|sed -r 's/[[:upper:]]/[[:lower:]]/g'
a[[:lower:]][[:lower:]]

Abraços Paulo


On 14/02/2019 15:46, Sidney Souza address@hidden [shell-script] wrote:
Veja se esses exemplos lhe ajudam

$ echo "CONVERTE AI" | sed -r 's/(.*)/\L\1/g'
converte ai
$ echo "converte ai" | sed -r 's/(.*)/\U\1/g'
CONVERTE AI

Aqui estou usando o \L para converter para lower case e o \U para converter 
para upper case


------------------------------------------------------
http://www.politicos.org.br


On Thu, Feb 14, 2019 at 3:21 PM address@hidden <mailto:address@hidden> [shell-script] <address@hidden <mailto:address@hidden>> wrote:

    __

    Olá a todos,
    Estou tendo dificuldades em converter letras/arquivos de minuscula para 
maiuscula e vice versa usando o
    SED, mas não esta funcionando.

    sed -r 's/[[:upper:]]*/[[:lower:]]/'

    Ele consegue pegar todas as letras maiusculas no caso acima, mas troca 
todas as letras por '[[:lower:]]'.

    Poderiam me dar uma dica para esse problema?
    Desde já, muito obrigado a todos.



--------------------------------------------------------------------------------------------------------------
Enviado por: Sidney Souza <address@hidden>
--------------------------------------------------------------------------------------------------------------
Responder através da web


reply via email to

[Prev in Thread] Current Thread [Next in Thread]