Você pode fazer isso com o gawk:
echo "Ciência" | gawk '{print toupper($0);}'
(também perl, alguém com certeza vai apontar). O exemplo usa o UTF-8, que não é explicitamente parte do POSIX awk . A documentação do gawk menciona esses problemas. Por exemplo, tanto mawk quanto bwk (one-true-awk) fornecem resultados diferentes:
+ echo Ciência
+ gawk {print toupper($0);}
CIÊNCIA
+ echo Ciência
+ mawk {print toupper($0);}
CIêNCIA
+ echo Ciência
+ one-true-awk {print toupper($0);}
CIêNCIA