A sintaxe de regex do Bash não reconhece \d
; use [[:digit:]]
:
pingnet="pingcount,site=DC,cur=200 total-up=988"
regex='([[:digit:]]+)$'
Eu tenho o script Bash abaixo, tentando capturar os últimos dígitos de 'pingnet', mas não consigo fazer uma correspondência. Eu verifiquei no regex101 e meu regex está correto:
pingnet="pingcount,site=DC,cur=200 total-up=988"
regex='(\d+)$'
if [[ $pingnet =~ $regex ]]
then
echo "YES"
echo "${BASH_REMATCH[1]}"
else
echo "NOT"
echo "${BASH_REMATCH[1]}"
fi
O resultado da execução do script NÃO é.
Tags bash regular-expression