Linux

如何列印文件中每個字元的(數字)ASCII 值?

  • January 17, 2022

如何列印文本文件中每個字元的數字 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,因為這是 ASCII 中用於 A 的字節,那麼您需要執行以下操作:

< file iconv -f that-charset -t ascii | od -An -vtu1

首先將該文件轉換為 ascii,然後轉儲相應的字節值。例如Apple<LF>,在 EBCDIC-UK 中將是193 151 151 147 133 37301 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

引用自:https://unix.stackexchange.com/questions/268514