Intereting Posts
Как создать учетную запись пользователя из сценария без интерактивного доступа без просмотра пароля? Восстановление (еще не созданного) RAID5 с URE (неисправимые ошибки чтения) Xen, мост и несколько IP-адресов на CentOS Cd в каталог имен без имени Nginx: изображения не подаются в HTTPS Может ли процесс, запущенный в контейнере linux, взаимодействовать с другим процессом, запущенным на ОС хоста через IPC? Как изменить заставку Linux Mint Nadia? Нужно ли явно включать jumbo-фреймы в NFSv4? как настроить почту резервное копирование и восстановление всего диска Сравните значения столбца со всеми значениями в другом столбце Ограничить доступ приложений к определенным ресурсам Есть ли программа поиска / порт поиска контента (* not * index based), которая эффективна для файлов, требующих фильтров для извлечения текста Команды командной строки терминала Не удается создать таблицу разделов на SSD с помощью Slackware 14

Как распечатать (числовые) значения ASCII каждого символа в файле?

Как напечатать числовые значения ASCII каждого символа в текстовом файле. Как cat , но показывая только значения ASCII … (шестнадцатеричный или десятичный в порядке).

Пример вывода для файла, содержащего слово Apple (с фидом строк), может выглядеть так:

 065 112 112 108 101 013 004 

Стандартная команда для этого – 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 

hexdump , od , xxd или $YOUR_FAVORITE_LANGUAGE могут все это сделать.

 % echo Apple | hexdump -C 00000000 41 70 70 6c 65 0a |Apple.| 00000006 % echo Apple | perl -ne 'printf "%vd\n", $_' 65.112.112.108.101.10 % echo Apple | clisp <( echo '(print (mapcar #'\''char-code (coerce (read-line *standard-input*) '\''list)))' ) (65 112 112 108 101) %