Birden çok alfanümerik değeri (bu sayı değişebilir) bir dizeden eşleştirmeye ve bunları bir bash yakalama grubu dizisine kaydetmeye çalışıyorum. Ancak, sadece ilk maçı alıyorum:
mystring1='<link rel="self" href="/unix//api/clouds/1/instances/1BBBBBB"/> dsf <link rel="self" href="/unix//api/clouds/1/instances/2AAAAAAA"/>'
regex='/instances/([A-Z0-9]+)'
[[ $mystring1 =~ $regex ]]
echo ${BASH_REMATCH[1]}
1BBBBBB
echo ${BASH_REMATCH[2]}
Gördüğünüz gibi, aradığım ilk değerle eşleşiyor, ikincisi değil.
Muhtemelen ünlüleri anlatmaya değer HTML'yi regex post ile ayrıştıramazsınız .
—
Dijital Travma
echo "$mystring1" | grep -oE '/instances/([A-Z0-9]+)'
musunuz?