Não é possível capturar o grupo regex? [duplicado]

0

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 é.

    
por irom 19.07.2018 / 22:23

1 resposta

3

A sintaxe de regex do Bash não reconhece \d ; use [[:digit:]] :

pingnet="pingcount,site=DC,cur=200 total-up=988"
regex='([[:digit:]]+)$'
    
por 19.07.2018 / 22:27