Cuando lo usé cuthoy, descubrí que no trata un carácter UTF-8 como un carácter, sino 3 caracteres porque tiene 3 bytes de longitud.
Esto parece ser generalmente cierto para muchas herramientas.
¿Hay versiones de los coreutilsque son conscientes de UTF-8?
Mi localesalida:
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=
Aquí es cuando cutno funciona
echo 哈哈 | cut -c 2-
��哈
La salida correcta debería ser
哈
si cut -cfunciona con caracteres multibyte.
cutlínea de comando?
echo ßßßß | cut -c 2--> �ßßß( LANG=en_US.UTF-8)
localecorrectamente? ¿Cuál es la lectura de lalocaleinvocación de comandos (sin argumentos)?