LINUX.ORG.RU

3 способа преобразовать hex в бинарный код на bash

 , ,


0

1

1. Используя sed

printf $(printf "5e"|sed 's/^/&\\x/')
2. Используя xxd
printf 5e|xxd -r -p
3. Используя чистый bash
while read -n 2 hex
do
     printf "\x${hex}"
done

Кстати, таким образом bash позволяет хранить в переменных бинарные данные.

★★★★★

Последнее исправление: ne-vlezay (всего исправлений: 1)

Зачем два printf в первом примере? Какой объем бинарных данных схавает переменная?

Deleted
()
Ответ на: комментарий от vodz

ГейОС или бздя какая-нибудь, небось.

anonymous
()
Ответ на: комментарий от mittorn

busybox ash

На котором мой копирайт.

Слабо прочитать топик, перед тем как комментировать? Где тут ash в сообщениях увидели?

vodz ★★★★★
()
Ответ на: комментарий от vodz

На котором мой копирайт.

знаю, потому и вбросил, мол там не поддерживаются юникод-символы (или за это отвечает libc?). Надо будет кстати твой форк попробовать, но меня немного смущает разрыв в номере версий

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

Надо будет кстати твой форк попробовать

Ну это извращение там тоже не будет работать. Оно и понятно, ибо сделать, чтобы печатало 'я' в соотвествии с кодировкой — это море кода, который нафиг для busybox не впёрся.

vodz ★★★★★
()
Ответ на: комментарий от d_a

Это mksh, локаль UTF-8

Всё время забываю, что на ЛОРе топики не читают, за нитью комментов не следят. А чего не продемонстрируете shell без встроенного printf? Оно же совсем не обязательное. Я начинал с таких, оно тогда не только встроенное не было, а даже вообще такой утилиты не было.

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.