Не может использовать 'сокращение-c' (' - символы) с UTF-8?

apt-cache policy packagename_here может сказать Вам, какая версия пакета доступна в который репозиторий.

15
23.10.2014, 08:56
3 ответа

Вы не сказали, который сокращает , вы используете, но так как вы упомянули GNU долгий выбор - знаки , я предположу, что случается так что один. В этом случае обратите внимание на отрывок из info coretils «cut invocation» :

 «-c character-list»
«--characters = character-list»

Выберите для печати только символы в позициях, перечисленных в списке символов. То же самое, что и -b на данный момент , но интернационализация изменит это.

(добавлено ударение)

На данный момент GNU cut всегда работает в терминах однобайтовых «символов», поэтому ожидаемое поведение.


Поддержка опций -b и -c является , требуемой POSIX - они не были добавлены в GNU cut , так как он имел поддержку в несколько байт, и они работали правильно, но чтобы избежать ошибок на То же самое -c было сделано в некоторых других реализациях cut , хотя, по крайней мере, не FreeBSD и OS X .

Это историческое поведение -c . -b был добавлен, чтобы принять роль байта так, чтобы -c мог работать с многобайтовыми символами. Может быть, через несколько лет он будет работать так, как хотелось бы, последовательно, хотя прогресс был не совсем быстрым (это уже более десяти лет). GNU cut еще даже не реализует опцию -n , даже если она ортогональна и предназначена для облегчения перехода.Есть потенциальные проблемы совместимости со старыми сценариями, которые могут быть проблемой, хотя я не знаю точно, в чем причина.

13
27.01.2020, 19:50

Поскольку многие реализации grep поддерживают многобайтовую обработку, вы также можете использовать grep -o для имитации некоторых вариантов использования cut -c .

$ echo Τηεοδ29 | grep -o '^..'
Τη
$ echo Τηεοδ29 | egrep -o '^..' | grep -o '.$'
η

Отрегулируйте количество периодов для имитации диапазонов отсечки .

2
27.01.2020, 19:50

colrm(часть util-linux, уже должна быть установлена ​​в большинстве дистрибутивов )кажется, гораздо лучше справляется с интернационализацией:

$ echo 'αβγ' | colrm 3
αβ
$ echo 'αβγ' | colrm 2
α

Остерегайтесь нумерации :colrm Nудалит столбцы из N, печатая символы до N-1.

(кредиты)

7
27.01.2020, 19:50

Теги

Похожие вопросы