Usar sed aqui apresenta mais complexidade do que vale a pena. Use os recursos internos de manipulação de texto do shell. Por exemplo, ${name#assignment02}
retira o prefixo assignment02
de $name
.
for name in assignment02.*; do
mv "$name" "assignment03${name#assignment02}"
done
As aspas duplas não são necessárias se você tiver certeza de que os nomes dos arquivos não contêm caracteres especiais do shell.
Se você tiver zsh disponível, sua função zmv
é útil para esses tipos de renomeação.
autoload zmv
zmv '(assignment)02.(*)' '${1}03.$2'