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 <[email protected] 
> <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:
> >
> > liber...@liberiun-pc02:~$ TESTE=ç
> > liber...@liberiun-pc02:~$ echo $TESTE | wc -c
> > 3
> > liber...@liberiun-pc02:~$ echo -n $TESTE | wc -c
> > 2
> > liber...@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
>
> 

Responder a