[unix] 파일에서 각 문자의 (숫자) ASCII 값을 어떻게 인쇄합니까?

텍스트 파일에서 각 문자의 숫자 ASCII 값을 인쇄하는 방법 마찬가지로 catASCII 값만 표시합니다 (16 진수 또는 10 진수는 좋습니다).

Apple 이라는 단어 (줄 바꿈)가 포함 된 파일의 출력 예 는 다음과 같습니다.

065 112 112 108 101 013 004



답변

표준 이에 대한 명령입니다 od(옵션, 당신은 진수로 진수 또는 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로 변환 한 다음 해당 바이트 값을 덤프합니다. 예를 들어 Apple<LF>EBCDIC – 영국의 것 193 151 151 147 133 37( 301 227 227 223 205 0458 진수).

$ 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)
% 


답변