Primeiro de tudo, para executar awk scripts, você precisa usar o interpretador awk . Você pode fazê-lo diretamente na linha de comando ( awk '{print $2}' file ) ou pode criar um script awk. O que é necessário é de alguma forma trazer awk para a equação. Você não pode usar o shell para executar comandos awk , somente awk pode fazer isso.
Neste caso, o script não é realmente necessário, como o Steeldriver mostrou, mas você também pode fazer o UNIX Way® e combinar ferramentas:
awk -F'[[ ]' '/hello.googlebot.com/{print $4}' log.txt | sed 's#:# #;s#/# #g'
Explicação
A opção -F permite escolher o separador de campos, neste caso, estou dando a ela uma classe de caracteres que contém dois caracteres: [ e (espaço). Isso significa que awk será dividido nesses caracteres. Os campos resultantes serão:
1 : hello.googlebot.com
2 : -
3 :
4 : 10/December/2012:04:14:15
Por isso, imprimo o 4º campo e o passo sed que apenas substitui o primeiro : por um espaço ( s#:# # ) e todos / com espaços ( todos por causa do g em s#/# #g ).
Alternativamente, você poderia simplesmente mudar para perl para a coisa toda:
perl -pe 's/.*?\[(.+?)\s\S+\].*/$1/; s/:/ /; s#/# #g' log.txt