odコマンドはデフォだと、行番号まで出てきて何かしら細工をしたい場合使いづらいです。
今回は、これを一行で出す方法。
実際のところ
$ echo 123 | od -An -v 031061 005063
16進数は"x"
$ echo 123 | od -An -v -tx1 31 32 33 0a $ echo 123 | od -An -v -tx2 3231 0a33
10進数は"u"
$ echo 123 | od -An -v -tu1 49 50 51 10 $ echo 123 | od -An -v -tu2 12849 2611
末尾の改行がいらないなら、printfかechoのオプションつきで。
$ printf "123" | od -An -v -tu1 | tr -d " " 495051
故郷の村を人質に取られてシェルのまま計算しないといけない場合
$ expr `printf "123" | od -An -v -tu1 | tr -d " " ` + 1 495052 $ expr `printf "123" | od -An -v -tu1 | tr -d " " ` \* 2 990102
単純に数値を出したいだけならprintfが楽
結果を16進数にするなら、結局printfが一等楽
$ printf "%x\n" 990102 f1b96