GNU/Linux >> Linux の 問題 >  >> Linux

ファイル内の各文字の (数値) ASCII 値を出力するにはどうすればよいですか?

そのための標準コマンドは 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 に変換してから、対応するバイト値をダンプします。例えば ​​Apple<LF> EBCDIC-UK では 193 151 151 147 133 37 になります (301 227 227 223 205 045 8 進数)

$ printf '\301\227\227\223\205\045' | iconv -f ebcdic-uk -t ascii | od -An -vtu1
  65 112 112 108 101  10

hexdumpodxxd 、または $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)
% 

Linux
  1. ファイルの最後に改行を追加するにはどうすればよいですか?

  2. ファイルの最後の文字である改行を削除するにはどうすればよいですか?

  3. 出力をファイルに追加する方法は?

  1. bashのフォルダ内の各ファイルの先頭に文字列を追加するにはどうすればよいですか?

  2. system() の出力をファイルにリダイレクトする方法は?

  3. 指定されたファイルの内容をバイトごとに表示する Linux コマンドで、文字とその数値表現がバイトごとに表示されます

  1. シェルコマンドを使用してASCIIファイルの最初のN行を削除するにはどうすればよいですか?

  2. ファイルを分割し、各部分の最初の行を保持する方法は?

  3. ファイル内の行の順序を変更する