クマの手も借りたい
馬とテニスとリラックマが好きな IT 系のエンジニアです。
シェル

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'
Web API The Good Parts

オライリーの「Web API」に特化した本です。最近の多くの Web サービスは API が活用されていますが、その技術はこれまでの Web サイトとそれほど大きく変わりません。

今後、マイクロサービス化が進む中で知っておいて損はない内容が詰め込まれており、現場のエンジニアやこれから Web 系のエンジニアを目指す人にもオススメの一冊です。

created by Rinker
¥2,376
(2018/09/20 11:58:13時点 Amazon調べ-詳細)

あなたにオススメ