0

私は、2 つ以上の数字のグループのみを取得する bash スクリプトの正規表現を作成する方法について、数時間取り組んできました。たとえば、#jk2478_0.JPEG があった場合、2478 のみを返したいと思います。すべての数値を返すことはできますが、この例の結果に 0 を含めないようにする方法がわかりません。これが私がこれまでに持っているものです。

i='#jk2478_0.JPEG';
f=`echo $i | sed s/[^0-9]*[^0-9]//g`
echo $f #24780
4

3 に答える 3

1
$ echo '#jk2478_0.JPEG,' | grep -E -o '[0-9]{2,}'
2478

-o一致のみを意味します

于 2013-02-03T06:23:16.947 に答える
1

sed を使用する他の方法

echo '#jk2478_0.JPEG,' | sed -re 's/(.*)([a-zA-Z]+)([0-9]+)(.*)/\3/'
于 2013-02-04T08:16:00.500 に答える
0

多分これ?

f=`echo $i | sed s/.*([0-9]\{2,\}.*/\1/`
于 2013-02-03T06:23:27.640 に答える