回答:
.*
最初に貪欲である-それはマッチングですfoo 6
。それ以上のマッチングがマッチングからパターン全体を停止するので、それが去るので、それはそこに停止した唯一の理由は、ある5
ため([0-9]+)
。([0-9]*)
代わりにそれを作った場合.*
、行全体に一致し、グループには何も表示されません。これを回避する1つの方法は、最初の部分に数値と一致しないように指示することです。
$ echo "foo 65 bar" | sed -n -e 's/[^0-9]*\([0-9]\+\).*/\1/p'
65