Quando usei cut
hoje, descobri que ele não trata um caractere UTF-8 como um caractere, mas três caracteres por ter 3 bytes de comprimento.
Isso geralmente parece verdadeiro para muitas ferramentas.
Existem versões coreutils
compatíveis com UTF-8?
Minha locale
saída:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Aqui é quando cut
não funciona
echo 哈哈 | cut -c 2-
��哈
A saída correta deve ser
哈
se cut -c
trabalhado com caracteres multibyte.
cut
linha de comando?
echo ßßßß | cut -c 2-
-> �ßßß
( LANG=en_US.UTF-8
)
locale
corretamente? Qual é a leitura dalocale
invocação de comando (sem argumentos)?