マッチした特定の場所を抜き出す


以下のような場合にマッチした数値だけを抜き出したいと言うものです。

$echo "test4325363test" | awk "/(.*)([0-9]+)(.*)/ {print NUMBER HERE!}"

代表的なものに match() を使うのと gensub() を使うものがあります。

以下は match() を使ったものです。

echo "test4325363test" | awk '
    match($0,/[0-9]+/) {
        print substr($0,RSTART,RLENGTH)
    }
'

そして gensub() を使ったものです。

gawk '{print gensub(/(.*)([0-9]+)(.*)/,"\\2","")}'