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","")}'
![正規表現にマッチした部分だけを取り出す - 日本 GNU AWK ユーザー会 0.2](https://cdn-ak-scissors.b.st-hatena.com/image/square/8ecea529f1588df529e5efdebdbb369f58e18041/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2FR%2FRocco%2F20071005%2F20071005231714.png)