Преобразовать текст в байты из оболочки Bash? - PullRequest
0 голосов
/ 16 мая 2018

Как можно преобразовать текстовую строку в байты в кодировке UTF-8, используя Bash и / или обычные утилиты командной строки Linux?Например, в Python можно сделать:

"Six of one, ½ dozen of the other".encode('utf-8')
b'Six of one, \xc2\xbd dozen of the other'

Есть ли способ сделать это в чистом Bash:

STR="Six of one, ½ dozen of the other"
<utility_or_bash_command_here> --encoding='utf-8' $STR
'Six of one, \xc2\xbd dozen of the other'

1 Ответ

0 голосов
/ 16 мая 2018

Perl для спасения!

echo "$STR" | perl -pe 's/([^x\0-\x7f])/"\\x" . sprintf "%x", ord $1/ge'

Модификатор /e позволяет включить код в заменяющую часть замены s///, которая в этом случае преобразует ord вгекс через sprintf .

...