파일에 있는 각 문자의 (숫자) ASCII 값을 인쇄하는 방법은 무엇입니까?

파일에 있는 각 문자의 (숫자) ASCII 값을 인쇄하는 방법은 무엇입니까?

텍스트 파일에 있는 각 문자의 ASCII 값을 인쇄하는 방법. 와 유사 cat하지만 ASCII 값만 표시합니다...(16진수 또는 10진수 모두 작동).

단어가 포함된 파일의 출력 예사과(개행 포함)은 다음과 같습니다.

065 112 112 108 101 013 004

답변1

이것기준od8진수 덤프의 경우 명령은 다음과 같습니다 (옵션을 사용하면 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 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

답변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)
% 

관련 정보