如何打印文本文件中每个字符的 ASCII 数值。与 类似cat
,但仅显示 ASCII 值...(十六进制或十进制都可以)。
包含该单词的文件的示例输出苹果(带有换行符)可能看起来像:
065 112 112 108 101 013 004
答案1
这标准命令是od
,对于八进制转储(尽管使用选项,您可以从八进制更改为十进制或十六进制......):
$ echo Apple | od -An -vtu1
65 112 112 108 101 10
请注意,它输出文件中每个字节的字节值。它与 ASCII 或任何其他字符集无关。
如果文件包含给定字符集中的 A,并且您希望看到 65,因为这是 ASCII 中用于 A 的字节,那么您需要执行以下操作:
< 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
答案2
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)
%