ヒアドキュメントとtrで長めな文字列を成形 - Bye Bye Moore
と
bash内の算術置換で16進数の数値をつかう - Bye Bye Moore
の発展的話題。
実際のところ
NetcatでUDPでウケたデータをhexdumpでベタ文字列にし、それをパースする例。
Bashの基数記法を使って、cutコマンドで整えた文字列をバリバリつなぐ。
BASESTR=$(echo -ne $DATACMD | nc -u -w 1 $IPADDR $PORT | hexdump -v -e '/1 "%02X"') STR_NUMs=$( tr -d '\n' << EOF "A":"$((16#$(echo $BASESTR | cut -b 22-23)))", "B":"$((16#$(echo $BASESTR | cut -b 41)))", "C":"$((16#$(echo $BASESTR | cut -b 54-55)))" EOF )