nawk ' { print URLdecode($0) } function URLdecode(s) { while(match(s,"%[0-9a-zA-Z][0-9a-zA-Z]")) { code = substr(s,RSTART+1,RLENGTH-1) val = 0; for(i=1; i<=length(code); i++) { char = toupper(substr(code,i,1)) val = 16*val+match("0123456789ABCDEF",char)-1 } repl=sprintf("%c",val+0) sub("%[0-9a-zA-Z][0-9a-zA-Z]",repl,s) } return(s) } '