awkには文字列置換の関数gsub()が用意されていて、正規表現も使えます。
先頭と語尾を指定しての文字列置換はよく使うので、紹介してみたいと思います。

スポンサーリンク

gsub()の使い方

下記の書式で、入力文字列を入力として、置換対象文字列を置換文字列に置換します。
gsub(置換対象文字列, 置換文字列, 入力文字列)

第一引数の置換対象文字列は、/正規表現/の形式でで設定することもできます。

先頭文字列の置換には”^”の正規表現を指定

例えば、先頭文字列が”2017″の場合に”2016″に置換したい場合は、下記のように書きます。
^2017とあれば、先頭文字列が”2017″の意味になります

サンプルコード

下記のように、in.txtがあったとします。

sample.awkには、1レコード(行)ずつ読み込んで、1フィールド(列)目の先頭文字列の”2017″を”2016″に置換します。
そして、置換された1フィールド(列)目をprint出力しています。

実行すると先頭の文字列”2017″のみ置換されています。

スポンサーリンク

語尾の置換には”$”の正規表現を指定

例えば、語尾が”2017″の場合に”2016″に置換したい場合は、下記のように書きます。
2017$とあれば、語尾が”2017″の意味になります

サンプルコード

下記のように、in.txtがあったとします。

sample2.awkには、1レコード(行)ずつ読み込んで、1フィールド(列)目の語尾が”2017″の場合には”2016″に置換します。

実行すると、語尾の”2017″のみ置換されています。

スポンサーリンク