shell ~ $ echo foo | nawk '{ gsub(/[^[:lower:]]/, "X"); print }' foo shell ~ $ echo foo | nawk '{ gsub(/[^[:lower:][:upper:]]/, "X"); print }' foo shell ~ $ echo foo | nawk '{ gsub(/[^[:upper:][:lower:]]/, "X"); print }' foo shell ~ $ nawk -version awk version 20121220 (FreeBSD)