How to gram awk's regexp submatches? $echo "test4325363test" | awk "/(.*)([0-9]+)(.*)/ {print NUMBER HERE!}"とした場合に数字だけを表示したいそうですが、awk で RSTART, RLENGTH をうまく使うのは慣れが必要かもしれません。 echo "test4325363test" | awk ' match($0,/[0-9]+/) { print substr($0,RSTART,RLENGTH) } ' もちろん、gawk なら gensub() で後方参照ができますから、もっとスマートに記述できます。 gawk '{print gensub(/(.*)([0-9]+)(.*)/,"\\2","")}'