Para corresponder ao conteúdo de uma variável de shell em bash
, zsh
ou ksh93
:
re='^[0-9]+(,[0-9]+)*$'
[[ $string =~ $re ]] && echo matches
POSIXly:
case $string in
("" | *[!,0-9]* | ,* | *, | *,,*) ;;
(*) echo matches;;
esac
Bournely:
expr " $string" : ' [0-9]\{1,\}\(,[0-9]\{1,\}\)*$' > /dev/null &&
echo matches
Para corresponder nas linhas de entrada:
grep -xE '[0-9]+(,[0-9]+)*'
Usamos +
(ou o equivalente BRE \{1,\}
) para corresponder a 1 ou mais dígitos. *
corresponderia a 0 ou mais.