С самого начала:
В теории (и главным образом так на практике) любой из тех компонентов является взаимозаменяемым. Можно выполнить kmail использование GNOME с WindowMaker на Xorg.
GNU coreutils действительно понимает UTF-8 в целом. Например, echo 哈哈 | wc -m
правильно выводы 3
в локали UTF-8 (отмечают, что опция -m
, нет -c
который по историческим причинам означает байты).
Это - ошибка в cut
. Рассмотрение источника cut
, cut
на символах просто не реализован: -c
опцию рассматривают как синоним -b
.
Обходное решение должно использовать awk. GNU awk справляется с UTF-8 очень хорошо.
awk '{print substr($0,2,length)}'
Это похоже на ошибку в Вашей сборке/версии coreutils
. Я могу воспроизвести это на Сурикате Индивидуалиста Ubuntu 10.10, но не на Fedora 15.
[patches@holocene ~]$ cat /etc/fedora-release Fedora release 15 (Lovelock) [patches@holocene ~]$ rpm -q coreutils coreutils-8.10-2.fc15.x86_64 [patches@holocene ~]$ echo 哈哈 | cut -c 2- 哈 [patches@holocene ~]$ sudo chroot /mnt/maverick root@holocene:/# grep DISTRIB_DESC /etc/lsb-release DISTRIB_DESCRIPTION="Ubuntu 10.10" root@holocene:/# dpkg-query -s coreutils | grep Version Version: 8.5-1ubuntu3 root@holocene:/# echo 哈哈 | cut -c 2- ��哈
Если Вы также используете Ubuntu, можно сообщить об ошибке к Ubuntu coreutils
поставщики программного блока путем выполнения следующей команды:
apport-bug coreutils
Обновление: Gilles указывает в комментариях, что это - ошибка в восходящей версии coreutils
тот Fedora исправил. Можно найти их патч здесь, если требуется попытаться исправить его сами для получения его работа.
-c
псевдоним -b
.
– Gilles 'SO- stop being evil'
02.07.2011, 13:44