Я не знаю хорошего способа проверить это bash
, но в Python есть встроенная база данных Unicode, которую вы можете использовать, как в следующем скрипте:
#!/usr/bin/env python
import sys, unicodedata
for ch in sys.stdin.read().decode('utf-8'):
try:
print unicodedata.name(ch)
except ValueError:
print 'codepoint ', ord(ch)
Вы можете использовать этот скрипт следующим образом (если вы его назвали unicode-names
):
$ echo 'abc©áοπρσ' | unicode-names
LATIN SMALL LETTER A
LATIN SMALL LETTER B
LATIN SMALL LETTER C
COPYRIGHT SIGN
LATIN SMALL LETTER A WITH ACUTE
GREEK SMALL LETTER OMICRON
GREEK SMALL LETTER PI
GREEK SMALL LETTER RHO
GREEK SMALL LETTER SIGMA
codepoint 10
База данных генерирует ValueError
исключение для любых символов, о которых она не знает, поэтому мы печатаем их кодовые точки в десятичном виде (обычно это непечатаемые символы).
Предостережение: скрипт предполагает, что ваш терминал имеет кодировку UTF-8. Если это не так, вы должны изменить аргумент decode()
метода. Python поддерживает очень широкий выбор кодировок, там обязательно найдутся ваши.
echo -n …— | uniname -bcegpu