for i in 1; do if [ $# -gt 0 ] ; then echo $* else cat fi done | \ tr 'a-z' 'A-Z' | \ sed -e 's/ / @ /g' | \ sed -e 's/[0-9A-F][0-9A-F]/ &/g' | \ awk 'BEGIN { hex["00"]="nul" hex["01"]="soh" hex["02"]="stx" hex["03"]="etx" hex["04"]="eot" hex["05"]="enq" hex["06"]="ack" hex["07"]="bel" hex["08"]="bs" hex["09"]="ht" hex["0A"]="nl" hex["0B"]="vt" hex["0C"]="np" hex["0D"]="cr" hex["0E"]="so" hex["0F"]="si" hex["10"]="dle" hex["11"]="dc1" hex["12"]="dc2" hex["13"]="dc3" hex["14"]="dc4" hex["15"]="nak" hex["16"]="syn" hex["17"]="etb" hex["18"]="can" hex["19"]="em" hex["1A"]="sub" hex["1B"]="esc" hex["1C"]="fs" hex["1D"]="gs" hex["1E"]="rs" hex["1F"]="us" hex["20"]="sp" hex["21"]="!" hex["22"]="\"" hex["23"]="#" hex["24"]="$" hex["25"]="%" hex["26"]="\&" hex["27"]="'\''" hex["28"]="(" hex["29"]=")" hex["2A"]="*" hex["2B"]="+" hex["2C"]="," hex["2D"]="-" hex["2E"]="." hex["2F"]="/" hex["30"]="0" hex["31"]="1" hex["32"]="2" hex["33"]="3" hex["34"]="4" hex["35"]="5" hex["36"]="6" hex["37"]="7" hex["38"]="8" hex["39"]="9" hex["3A"]=":" hex["3B"]=";" hex["3C"]="<" hex["3D"]="=" hex["3E"]=">" hex["3F"]="?" hex["40"]="@" hex["41"]="A" hex["42"]="B" hex["43"]="C" hex["44"]="D" hex["45"]="E" hex["46"]="F" hex["47"]="G" hex["48"]="H" hex["49"]="I" hex["4A"]="J" hex["4B"]="K" hex["4C"]="L" hex["4D"]="M" hex["4E"]="N" hex["4F"]="O" hex["50"]="P" hex["51"]="Q" hex["52"]="R" hex["53"]="S" hex["54"]="T" hex["55"]="U" hex["56"]="V" hex["57"]="W" hex["58"]="X" hex["59"]="Y" hex["5A"]="Z" hex["5B"]="[" hex["5C"]="\\" hex["5D"]="]" hex["5E"]="^" hex["5F"]="_" hex["60"]="`" hex["61"]="a" hex["62"]="b" hex["63"]="c" hex["64"]="d" hex["65"]="e" hex["66"]="f" hex["67"]="g" hex["68"]="h" hex["69"]="i" hex["6A"]="j" hex["6B"]="k" hex["6C"]="l" hex["6D"]="m" hex["6E"]="n" hex["6F"]="o" hex["70"]="p" hex["71"]="q" hex["72"]="r" hex["73"]="s" hex["74"]="t" hex["75"]="u" hex["76"]="v" hex["77"]="w" hex["78"]="x" hex["79"]="y" hex["7A"]="z" hex["7B"]="{" hex["7C"]="|" hex["7D"]="}" hex["7E"]="~" hex["7F"]="del" char1="" char2="" pad1="+" pad2="-" #pad1="" #pad2="" pad1="" pad2="" } # { print ":" $0 ":" } { string="" count++ for (i = 1 ; i < NF+1 ; ++i) { if ( $i == "@" ) { if ( pad == 1 ) { string=string pad2 " " pad1 } else { string=string " " } } else { if ( length(hex[$i]) == 1 ) { if ( pad == 1 ) { string=sprintf("%s%2s",string,hex[$i] ) } else { string=sprintf("%s%2s",string pad1,hex[$i] ) } pad=1 } else { if ( pad == 1 ) { string=sprintf("%s",string pad2 char1 $i char2) } else { string=sprintf("%s",string char1 $i char2) } pad=0 } } } print string } #END{ #for (x in hex) print x,hex[x] #} '