shell 変数の awk での使用
これも定石と言うか FAQ に近い問題です。基本的には '-v' オプションで渡すのが簡単で間違いがありません。
#! /bin/bash pattern=$1 cat file.c | awk '{ if($0 ~ $pattern) print $0; }'
というものが動作しないと言うことですが、'-v' で渡してあげれば OK です。
pattern=$1 awk -v pattern="$pattern" '$0 ~ pattern' file.c