hexdump を使用して xxd コマンドを複製する

hexdump を使用して xxd コマンドを複製する

私の現在のワークステーションには、としかインストールされておらずhexdump、などの他のパッケージをインストールすることはできませんxxd。そのため、このxxdコマンドを16進ダンプに相当するものに翻訳する必要があります。

echo "my home is very good 002_" | xxd -p -c 256
#Output: 6d7920686f6d65206973207665727920676f6f64203030325f0a


echo "my home is very good 002_" | hexdump -e '256 1 "%x"'
#Output: 6d7920686f6d65206973207665727920676f6f64203030325fa

ご覧のとおり、出力の最後に余分な「0」があり、これは私の解決策が機能していないことを意味します。

手伝ってくれませんか?

答え1

hexdump のフォーマット指定子として使用してみてください%02x。 指示しない限り、1 バイトにゼロのプレフィックスは付きません。 残念ながら、削除しない限り、行が埋められ始めます。

例えば:

echo "" | hexdump -e '256 1 "%02x"'
#Output: 0a[followed by a significant amount of whitespace]

動作を正確に一致させるには、hexdump を以下と組み合わせますfold

echo "" | hexdump -e '"%02x"' | fold -b -w512

関連情報