#!/bin/bash if [[ $# -lt 2 ]] then echo "Usage: $0 " exit fi if [[ $1 != "1" && $1 != "2" ]] then echo "Unknown display format. Please submit 1 if no prefix, 2 for prefix U+" exit fi if [[ ! -f $2 ]] then echo "File $2 doesn't exist or is not regular" exit fi if [[ $1 == "2" ]] then fmt="U+" fi while read addr do l=$(expr length $addr) ind=$(expr index $addr "0") cont=$(expr substr $addr $((ind+1)) $((8-ind))) pos=11 while [[ $pos -lt $l ]] do cont=$cont$(expr substr $addr $pos 6) pos=$((pos+8)) done printf "$fmt%x\n" $((2#$cont)) done < $2 exit