質問: unixシェルスクリプトでasciiコードを16進数に変換する asciiコード(-または_または.など)]をunixシェルの16進表記(bcなし)に変換したいコマンド)、例:- => %2d。何か案は?
回答: xxdは、vim-commonパッケージの一部として出荷される16進ダンプユーティリティです。 これには、連続した「プレーン/ポストスクリプト」16進ダンプスタイルを出力する便利な-pオプションがあります。これは、-r...を介して簡単に元に戻すことができ、-uは上位を出力します-ケースhex-digits。$ echo -n "m" |xxd -p # 1 ascii char= 1 utf-8 byte; unicode codepoint: u+0041 4d $ echo -n "〒" |xxd -p -u # 1 cjk char= 3 utf-8 bytes; unicode codepoint: u+3036 e380b6 $ echo -n "dump a string" |xxd -p -u 44756d70206120737472696e67 $ echo -n "dump and revert" |xxd -p |xxd -r dump and revert