awk

awkで文字列にシングルクォーテーションを付けて出力する

awk は特定の区切り文字で文字列を区切る時に多用しますが、区切った文字に他の文字列を連結することもあります。

通常の文字なら問題ないのですが、シングルクォーテーションだけは少し特殊です。

今回はこのようなケースを想定して、出力した文字にシングルクォーテーションを連結させてみたいと思います。

awkの出力に文字列を付与する

例えば、下記の A から E までが半角スペースで区切られた文字列があった場合、A と B を SQL などのクエリ文字列に利用したい場面に遭遇したとします。

この場合、awk を使って A と B を抜き出すには下記のように表現します。

awkを活用してSQL文を作成する

では、実際にこの A と B を SQL の UPDATE 文に利用してみるとします。

その際、代入する文字列はシングルクォートで囲みます。

例として下記の UPDATE 文を表現してみます。

この時、シングルクォーテーションをそのまま書いても awk では解釈してくれないので \047 で表現します。

また、\(エンマーク)を表現するときは円マークを 2 個(\\)並べます。