私は、2 つ以上の数字のグループのみを取得する bash スクリプトの正規表現を作成する方法について、数時間取り組んできました。たとえば、#jk2478_0.JPEG があった場合、2478 のみを返したいと思います。すべての数値を返すことはできますが、この例の結果に 0 を含めないようにする方法がわかりません。これが私がこれまでに持っているものです。
i='#jk2478_0.JPEG';
f=`echo $i | sed s/[^0-9]*[^0-9]//g`
echo $f #24780
$ echo '#jk2478_0.JPEG,' | grep -E -o '[0-9]{2,}'
2478
-o一致のみを意味します
sed を使用する他の方法
echo '#jk2478_0.JPEG,' | sed -re 's/(.*)([a-zA-Z]+)([0-9]+)(.*)/\3/'
多分これ?
f=`echo $i | sed s/.*([0-9]\{2,\}.*/\1/`