テキストファイル内の各文字のASCII値を印刷する方法。に似ていますcat
が、ASCII値のみを表示します...(16進数または10進数の両方で動作します)。
単語を含むファイルの出力例りんご(改行含む)は以下の通りです。
065 112 112 108 101 013 004
答え1
これ基準od
8進ダンプの場合、コマンドは次のようになります(オプションを使用すると、8進数から10進数または16進数に変更できますが...)。
$ echo Apple | od -An -vtu1
65 112 112 108 101 10
ファイルの各バイトのバイト値を出力します。 ASCIIや他の文字セットとは何の関係もありません。
ファイルに指定された文字セットのAが含まれていてASCIIでAに使用されるバイトであるため、65が表示されると予想される場合は、次のことを行う必要があります。
< file iconv -f that-charset -t ascii | od -An -vtu1
まずファイルをASCIIに変換し、対応するバイト値をダンプします。たとえば、EBCDIC-UKでは(8進数)Apple<LF>
です。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)
%