Tente:
$ awk '$3 ~ /^r/ {$2 = $3}1' file
223 898 teeth
223 899 mouth
223 r9 r9
445 round round
Isso combina a pesquisa e a impressão em um único comando awk , em vez de usar grep & %código%. O awk acima encontrará apenas as linhas em que o 3º campo começa com $3 ~ /^r/ . Nessas situações, r substituirá o 3º campo pelo 2º campo.
Se você ficou confuso com o% trailing awk , está fazendo o seguinte. Ele é avaliado como verdadeiro, fazendo com que 1 execute sua operação padrão, awk .