>>664
なんだ、>>664>>648 が的を得た解答であることすら理解できてなかったのかw

awkにおいては、awkプログラムを、シェルから見て第1引数(argv[1])に与えることが
重要。

シェルスクリプトの中からawkを呼ぶ場合、awkプログラムの文字列が
シェルに解釈されるのを防ぐため、通常、全体をシングルクォートで囲むが、
そのシングルクォートの中の一部だけ、シェル変数で置き換えたい場合がある。

そんな時は、awkプログラムの途中で一旦シングルクォートを閉じて終了する。
(これが、>>644 が言う「ぶった切れる」)
その直後に、「空白を入れずに」ダブルクォート付きでシェル変数を記述する。
その直後、再び「空白を入れずに」シングルクォートでawkプログラムの続きを書く。

この、複数のシングルクォートやダブルクォート同士の間に空白を入れないこと、
空白を入れるとシェル上で別の引数に分断されること、
awkでは「1つの引数としてプログラムを書く」必要があること、
と言うのが問題の本質。

>>645 はその答を簡潔に先に言っている。