ascii->int
ASCII コードから int への変換についての質問です。
echo $1 | awk ' BEGIN {a2i["A"]= 65; a2i["B"]= 66; a2i["C"]= 67; a2i["D"]= 68; a2i["E"]= 69; a2i["F"]= 70; a2i["G"]= 71; a2i["H"]= 72; a2i["I"]= 73; a2i["J"]= 74; a2i["K"]= 75; a2i["L"]= 76; a2i["M"]= 77; a2i["N"]= 78; a2i["O"]= 79; a2i["P"]= 80; a2i["Q"]= 81; a2i["R"]= 82; a2i["S"]= 83; a2i["T"]= 84; a2i["U"]= 85; a2i["V"]= 86; a2i["W"]= 87; a2i["X"]= 88; a2i["Y"]= 89; a2i["Z"]= 90; a2i["a"]= 97; a2i["b"]= 98; a2i["c"]= 99; a2i["d"]=100; a2i["e"]=101; a2i["f"]=102; a2i["g"]=103; a2i["h"]=104; a2i["i"]=105; a2i["j"]=106; a2i["k"]=107; a2i["l"]=108; a2i["m"]=109; a2i["n"]=110; a2i["o"]=111; a2i["p"]=112; a2i["q"]=113; a2i["r"]=114; a2i["s"]=115; a2i["t"]=116; a2i["u"]=117; a2i["v"]=118; a2i["w"]=119; a2i["x"]=120; a2i["y"]=121; a2i["z"]=122;} $1 in a2i {end=a2i[$1]; start=65; if(end>90) start=97 for(c=start; c<=end; c++) printf "%c\n", c; next;} {exit 1;}'
と冗長に書いてもよし、
BEGIN{ # Create a lookup table with characters as indexes and values as data. for( i = 0; i <= 255; i++ ) CharNums[ sprintf( "%c", i)] = i } { # $0 is a single character - look up the value. print CharNums[ $0 ] }
とスマートに書いてもよし。