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

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

Re: [shell-script] Sed com expressão regular


From: Paulo Bettega
Subject: Re: [shell-script] Sed com expressão regular
Date: Thu, 05 Jun 2014 11:18:46 -0300
User-agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.5.0

Olá Julio, é verdade, aqui pra mim o tr também não converteu, o resultado foi o 
mesmo.
Mas o sed converte

$ sed 's/[a-z]/-/g' <<< ação
-çã-
$ LC_COLLATE=pt_BR.UTF-8 sed 's/[a-z]/-/g' <<< ação
----
$ LC_COLLATE=pt_BR sed 's/[a-z]/-/g' <<< ação
--�-�-

(essa última com pt_BR não sei o que vai aparecer, porque os acentuados
são substituídos por aquele "ponto de interrogação de dois bytes")


Acho que no sed não tem como fazer a substituição "em lote" com lista,
só com o comando y, letra por letra.
Mas o tr equivalente ao exemplo com sed também não substitui os acentuados

$ tr a-z - <<< ação
-çã-
$ LC_COLLATE=pt_BR.UTF-8 tr [a-z] - <<< ação
-çã-
$ LC_COLLATE=pt_BR.UTF-8 tr [:lower:] - <<< ação
-çã-

Tentei com todas aquelas variáveis LC_... e LANG mas não converteu.
Será que o tr se perde com os caracteres utf8?
Mas na ajuda aparecem as listas POSIX.

Abraços Paulo Bettega



On 05-06-2014 10:39, 'Julio C. Neves' address@hidden [shell-script] wrote:
Concordo com o que vc falou Paulo, mas não entendo o que ocorre nesse exemplo:

$ export LC_COLLATE=pt_BR.UTF-8
$ tr a-z A-Z <<< ação
AçãO
$ tr [:lower:] [:upper:] <<< ação
AçãO

Nenhum dos 2 converteu o ç e o ã

Abcs,
Julio
*@juliobash*
*Próximos cursos de Shell*
*Cidade        LocalPeríodo*
*Rio de JaneiroEDX <http://edx.srv.br/>02 a 06/06*
*São Paulo4Linux <http://www.4linux.com.br/>21 a 25/07*
Dou treinamento de /Shell/ em qualquer cidade.
Para mais detalhes, me mande um e-mail <mailto:address@hidden>.



Em 5 de junho de 2014 10:04, Paulo Bettega address@hidden 
<mailto:address@hidden>
[shell-script] <address@hidden <mailto:address@hidden>> escreveu:

    __

    Olá pessoal, só pra relatar que [A-Za-z] e [:alpha:] englobam
    os caracteres acentuados quando a variável LC_COLLATE é igual a
    alguma linguagem UTF8.

    Quando LC_COLLATE=C , ou até mesmo LC_COLLATE=pt_BR , [A-Za-z] não casa os 
acentuados.

    Abraços Paulo Bettega

    On 04-06-2014 19:07, Paulo Bettega address@hidden <mailto:address@hidden>
    [shell-script] wrote:
     >
     > ps2- Pode ser a configuração do meu sistema (ou problema na 
configuração...),
     > mas aqui pra mim [A-Za-z] também pega é,ç,ã,Á,Í,etc.
     >



reply via email to

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