#!/bin/bash PORTALHEX=$1 if [ -z "$PORTALHEX" ]; then exit 1 fi P=$(echo $PORTALHEX | cut -c 1-1) SSI=$(echo $PORTALHEX | cut -c 2-4) Y=$(echo $PORTALHEX | cut -c 5-6) Z=$(echo $PORTALHEX | cut -c 7-9) X=$(echo $PORTALHEX | cut -c 10-12) Yd=$(echo "ibase=16; $Y" | bc) Xd=$(echo "ibase=16; $X" | bc) Zd=$(echo "ibase=16; $Z" | bc) if (( $Yd <= 128 )) ; then Y=$(expr $Y + 100) fi if (( $Zd <= 2048 )) ; then Z=$(expr $Z + 1000) fi if (( $Xd <= 2048 )) ; then X=$(expr $X + 1000) fi Yd=$(echo "ibase=16; $Y" | bc) Xd=$(echo "ibase=16; $X" | bc) Zd=$(echo "ibase=16; $Z" | bc) Y=$(echo "obase=16; $(expr $Yd - 129)" | bc) X=$(echo "obase=16; $(expr $Xd - 2049)" | bc) Z=$(echo "obase=16; $(expr $Zd - 2049)" | bc) X=`printf "%04x" 0x$X` Y=`printf "%04x" 0x$Y` Z=`printf "%04x" 0x$Z` SSI=`printf "%04x" 0x$SSI` echo -e "$X:$Y:$Z:$SSI"