クマの手も借りたい
茶トラネコ(@kumanotemo)です。上場を控えたITベンチャーを2社も退職してフリーランスの道を選んだ放浪エンジニアです。
シェル

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

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

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

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

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

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

$ cat saratoga.txt

A B C D E

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

$ awk -F' ' '{print $1" "$2}' saratoga.txt 

A B

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

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

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

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

UPDATE saratoga SET id = 'A', name = 'B'
(テーブル名を saratoga と仮定します)

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

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

$ awk -F' ' '{print "UPDATE saratoga SET id = \047"$1"\047, name = \047"$2"\047"}' saratoga.txt

UPDATE saratoga SET id = 'A', name = 'B'
現場のプロから学ぶSEO技術

SEO について詳しくないけどこれから学んでみたい方。

これまでの小手先の SEO に対する技術には詳しいけど、マーケティングやソーシャル要素を組み合わせた今時の SEO をもう一度勉強してみたい方にオススメです。

あなたにオススメ