私は8b1f 0008 0231 49f6 0300 f1f3 75f4 0c72 f775 0850 7676 720c 560d 75f0 02e5 ce00 0861 1302 0000 0000と言っていますが、ヘキサエディタに貼り付け+貼り付けを行わずに簡単にバイナリファイルを取得できますか?od(1)の反対は何ですか?
答えて
用途:
% xxd -r -p in.txt out.bin
ここ
xxdを参照してください。
が逆転するための方法ですが、出力を "OD":
echo "test" | od -A x -t x1 | sed -e 's|^[0-f]* ?||g' | xxd -r
test
このバージョンでは、あまりにもバイナリ形式で動作します:
cat /bin/sh \
| od -A n -v -t x1 \
| tr -d '\r' \
| xxd -r -g 1 -p1 \
| md5sum && md5sum /bin/sh
余分」を\ r 'は、あなたがw/dosのテキストファイルを扱っている場合です... とエンディアンの違いを防ぐためバイト単位で処理します異なるシステム上でパイプの一部を実行している場合
すべての現在の回答は便利なxxd -r
のアプローチを参照していますが、ここでxxd
が利用できない、または便利でない場合は、POSIXシェル構文のみを使用して、移植性が高く(より柔軟で、ちなみに
un_od() {
printf -- "$(
tr -d '\t\r\n ' | sed -e 's/^(.(.{2})*)$/0\1/' -e 's/\(.\{2\}\)/\\x\1/g'
)"
}
:それはまた、入力の桁の奇数)を補償し、あなたの入力がビッグエンディアンかリトルエンディアンであるかどうかを指定するか、またはあなたがビッグ/リトルエンディアンを望んでいるかどうかはありません出力。通常、あなたの質問のような入力は、ビッグエンディアン/ネットワークオーダー(例えば、od -t x1 -An -v
によって作成される)であり、ビッグエンディアン出力に変換されることが期待されます。私はxxd
は、そうでないと言われてもデフォルトを前提としていると推測しています。バイトスワップが必要な場合は、システムのワードサイズ(たとえば32ビット、64ビット)と非常に(ほとんどの場合、8ビットバイト - オクテット - しかし)。
以下の関数は、バイナリデータを移植可能にバイトバイパスし、システムエンディアンに条件を付け、システムワードサイズを計算するという、より複雑なバージョンのbinary -> od -> binary
を使用します。アルゴリズムは72bitワード・サイズまで何のために働く(seq -s '' 10
はので - >12345678910
は動作しません):
if { sed --version 2>/dev/null || :; } | head -n 1 | grep -q 'GNU sed'; then
_sed() { sed -r "${@}"; }
else
_sed() { sed -E "${@}"; }
fi
sys_bigendian() {
return $(
printf 'I' | od -t o2 | head -n 1 | \
_sed -e 's/^[^ \t]+[ \t]+([^ \t]+)[ \t]*$/\1/' | cut -c 6
)
}
sys_word_size() { expr $(getconf LONG_BIT)/8; }
byte_swap() {
_wordsize=$1
od -An -v -t o1 | _sed -e 's/^[ \t]+//' | tr -s ' ' '\n' | \
paste -d '\\' $(for _cnt in $(seq $_wordsize); do printf -- '- '; done) | \
_sed -e 's/^/\\/' -e '$ s/\\+$//' | \
while read -r _word; do
_thissize=$(expr $(printf '%s' "$_word" | wc -c)/4)
printf '%s' "$(seq -s '' $_thissize)" | tr -d '\n' | \
tr "$(seq -s '' $_thissize -1 1)" "$_word"
done
unset _wordsize _prefix _word _thissize
}
あなたは、システムのエンディアンに関係なく、ビッグエンディアン形式で出力ファイルの内容に上記を使用することができます。
if sys_bigendian; then
cat /bin/sh
else
cat /bin/sh | byte_swap $(sys_word_size)
fi
- 1. Laravel - 1対多の関係でsaveメソッドの反対は何ですか?
- 2. evt.preventDefault()の反対は何ですか?
- 3. オブザーバーパターンの反対は何ですか?
- 4. `unpack(" m ")`の反対は何ですか?
- 5. lodashでは、 `pairs()`の反対は何ですか?
- 6. RubyでArray#rejectの反対は何ですか?
- 7. javascriptの(objの "key")の反対は何ですか?
- 8. jQueryの "change()"イベントの反対は何ですか?
- 9. このフルテキスト検索の反対は何ですか?
- 10. ChannelFactory <TChannel> .CreateChannelとは何が反対ですか?
- 11. 「git fetch」の反対は何でしょうか?
- 12. assert_selectの反対ですか?
- 13. __add__の反対ですか?
- 14. ピクセルサイズod NSBitmapImageRep
- 15. awakeFromNib反対ですか?
- 16. 構造とは反対ですか?
- 17. はipに対して1対1マッピングのホスト名ですか?
- 18. "svn up"の反対ですか?
- 19. git cherry-pickの反対ですか?
- 20. XPath:string()関数の反対ですか?
- 21. Aptana svn:コミットの反対ですか?
- 22. 反対
- 23. MySQLのデザインは1対多ですか?
- 24. os.path.commonprefixの反対
- 25. 反対側のネイティブビューに反応する
- 26. grailsの1対多ドメイン関連オブジェクトを保存するベストプラクティスは何ですか?
- 27. ミュールメッセージの対象は何ですか?
- 28. djangoの1対1の左への結合はnullですか?
- 29. エンティティフレームワークの1対多の挿入 - 外部キー違反
- 30. JQuery find()の反対
単純なスクリプトまたはプログラムを作成して実行します。 C言語の5-10行、または他の言語を使用できます。取引を終えた。 –
ここでは、ソリューションのロットのこの問題にコードゴルフの質問です:http://stackoverflow.com/questions/795027/code-golf-hex-to-raw-binary-conversion – dertoni