Давайте возьмем двоичный файл wtmp. В идеале я бы хотел:
Код: Выделить всё
$ dd if=/var/log/wtmp bs=1 count=20 status=none | somecommand
\x02\x00\x00\x00\x00\x00\x00\x00~\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
Код: Выделить всё
$ dd if=/var/log/wtmp bs=1 count=20 status=none | python -c 'import sys;print(sys.stdin.buffer.read())'
b'\x02\x00\x00\x00\x00\x00\x00\x00~\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Я знаю о xxd -i и hexdump -e '"%_c"'. Возможно ли сделать, чтобы затем использовать \x и экранировать только непечатаемые символы?
Я пробовал исследовать, но мой Google-фу в основном заканчивается сообщениями о преобразовании шестнадцатеричного кода в ascii в bash, а я хочу наоборот. Мне не удалось найти или придумать удовлетворительное решение.
Подробнее здесь: https://stackoverflow.com/questions/788 ... m-on-linux
Мобильная версия