awkで出力した文字列にシングルクォーテーション

awkで出力した文字列にシングルクォーテーション

awkawkで出力した文字列にシングルクォーテーション

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

では、実際にこの A と B を SQL の UPDATE 文に利用してみるとします。その際、代入する文字列はシングルクォートで囲みます。例として下記の UPDATE 文を表現してみます。

UPDATE saratoga SET id = 'A', name = 'B'
(テーブル名 : saratoga)
$ awk -F' ' '{print "UPDATE saratoga SET id = \047"$1"\047, name = \047"$2"\047"}' saratoga.txt

UPDATE saratoga SET id = 'A', name = 'B'

この時、シングルクォーテーションをそのまま書いても awk では解釈してくれないので \047 で表現します。また、\(エンマーク)を表現するときは円を 2 個(\\)並べます。

最終更新日:

関連記事

人気記事

新着情報