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

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

Re: [shell-script] Por que o wc conta errado ??


From: Leandro Santiago
Subject: Re: [shell-script] Por que o wc conta errado ??
Date: Thu, 19 Nov 2009 16:45:26 -0200
User-agent: Thunderbird 2.0.0.23 (X11/20090817)

Na verdade caracteres em UTF-8 podem usar de 1 a 4 bytes. Um para os primeiros 127 (ASCII), 2 para latin (acentuados), 3 para caracteres em outros idiomas (como japones, chines, hebraico, etc) e 4 bytes para caracteres que ainda não foram definidos, mas que futuramente serão colocados na tabela Unicode.

Engraçado é que a forma
$ wc -l <<< string
7

Retorna com a quebra de linha também (talvez pelo sinal de fim de instrução), mas se vc fizer:
$ wc -l <<< string; echo
7
# uma linha varia, do segundo echo

Ele retorna com a quebra mesmo assim... É no mínimo engraçado.


Marcelo Andrade wrote:
2009/11/19 Thomaz de Oliveira dos Reis <address@hidden <mailto:thor27%40gmail.com>>:
> Vale lembrar também que wc -c conta número de bytes e não de caracteres.
>
> Veja o exemplo aonde isso falha:
>
> liberiun@Liberiun-PC02:~$ TESTE=ç
> liberiun@Liberiun-PC02:~$ echo $TESTE | wc -c
> 3
> liberiun@Liberiun-PC02:~$ echo -n $TESTE | wc -c
> 2
> liberiun@Liberiun-PC02:~$ echo -n $TESTE | wc -m
> 1

So lembrando que isto deve falhar se voce estiver usando
algum locale em UTF-8, pois nesta codificacao, caracteres
"especiais" sao representados com dois bytes.

Atenciosamente.

--
MARCELO DE F. ANDRADE
Belem, PA, Amazonia, Brazil
Linux User #221105





reply via email to

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