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

シェル スクリプトでバイナリ データを 16 進数に変換する

od の場合 (GNU システム):

$ echo abc | od -A n -v -t x1 | tr -d ' \n'
6162630a

hexdump の場合 (BSD システム):

$ echo abc | hexdump -ve '/1 "%02x"'
6162630a

Hex dump、od、hexdump から :

<ブロック引用>

「システムの種類に応じて、これら 2 つのユーティリティのいずれかまたは両方が利用可能になります。BSD システムでは 16 進ダンプが非推奨になり、GNU システムではその逆になります。」


おそらく xxd を使用してください :

% xxd -l 16 -p /dev/random
193f6c54814f0576bc27d51ab39081dc

気をつけて!

hexdumpxxd 結果を異なるエンディアンで与えてください!

$ echo -n $'\x12\x34' | xxd -p
1234
$ echo -n $'\x12\x34' | hexdump -e '"%x"'
3412

簡単に説明します。ビッグ エンディアンとリトルエンディアン :D


Linux
  1. 星のピラミッドを出力するシェルスクリプト

  2. MacOS のシェルスクリプトで DATE を UNIX TIMESTAMP に変換する方法

  3. シェルスクリプトの並列実行

  1. Linux シェルの音訳スクリプト

  2. .sh ファイルがマルウェアになる可能性はありますか?

  3. シェルスクリプトはプログラミング言語ですか?

  1. 実行時にスクリプトでシェルを決定しますか?

  2. シェルスクリプトの現在のディレクトリ?

  3. シェルで .txt を .csv に変換する