awkのgsub/sub関数でマッチした文字の前後に細工をしたい場合、
マッチした文字をキャプチャしてくれるのは"&"です。
実際のところ
たとえばgsubなら
$ echo 12345678 | awk 'gsub(/[0-9][0-9]/, "&-")' 12-34-56-78- $ echo abc | awk ' gsub(/あ*/, " // &")' // a // b // c //
subならこう
$ echo 12345678 | awk 'sub(/[0-9][0-9]/, "&-")' 12-345678
単に先頭なり末尾なりに文字を加えたいだけなら、
存在し得ない文字に"*"*1をくっつけてこんな手も。
$ echo abc | awk ' gsub(/^あ*/, " - ")' - abc $ echo abc | awk ' gsub(/あ*$/, " // ")' abc //
$ echo abc | awk ' gsub(/あ*/, " // ")' // a // b // c //
*1:ゼロ個以上適用