Стандартная команда для этого есть od
, для восьмеричной свалки (хотя с опционами, вы можете изменить из восьмеричных в десятичном или шестнадцатеричном ...):
$ echo Apple | od -An -vtu1
65 112 112 108 101 10
Обратите внимание, что он выводит значение байта каждого байта в файле. Это не имеет ничего общего с ASCII или любым другим набором символов.
Если файл содержит A в заданном наборе символов, и вы хотели бы видеть 65, потому что это байт, используемый для A в ASCII, то вам нужно сделать:
< file iconv -f that-charset -t ascii | od -An -vtu1
Сначала преобразовать этот файл в ascii, а затем вывести соответствующие байтовые значения. Например, Apple<LF>
в EBCDIC-UK будет 193 151 151 147 133 37
( 301 227 227 223 205 045
в восьмеричной).
$ printf '\301\227\227\223\205\045' | iconv -f ebcdic-uk -t ascii | od -An -vtu1
65 112 112 108 101 10
python -c "print open('file', 'rb').read().encode('hex')"
echo 'Apple' | python -c "import sys;print sys.stdin.read().encode('hex')"
os.linesep
->'\n'
)