I'd skip the awk part here. My solution would be:

   vim $(grep -ril "tpl_header" *)

The -l option to grep just returns the filename where a match occurred, so there's no need to use awk to separate it out from what grep returns.

In my case I usually keep vim backup files in the same directory so I'd change '*' to '*[^~]' to omit those.

As an aside I prefer $() to back-ticks since they are more visible and (I think) nest better.

There are times when grep is unnecessary because awk can do the same job, but this isn't one. Quite the reverse!