Você precisa colocar o script awk
real entre aspas strongs para evitar que o shell as veja e tente analisá-las antes de passar o comando para awk
:
gawk '{ if( $0 == "id123"){ print $0 } }' doc.txt
Como um aparte, você pode fazer isso com um pouco mais de elegância:
gawk '$0 == "id123" { print $0 }' doc.txt