\d
corresponde a um dígito decimal em algumas versões de regex (perl), mas não nas Expressões regulares estendidas usadas para o operador =~
do comando [[
em bash
.
Portanto, altere o \d
para [0-9]
para um padrão que corresponderá a 4 dígitos decimais.
Similarmente para \s
. Para corresponder a um caractere de espaço literal, substitua o \s
por um espaço de escape ( \
). Se você quiser combinar 1 ou mais espaços em branco (espaços ou tabulações), substitua o \s
por [[:blank:]]+
.
Mais importante, para evitar essas misturas de regex:
man bash
diz que =~
expressões regulares correspondem de acordo com a sintaxe expressão regular estendida , conforme documentado em regex(3)
.
man 3 regex
(funções regex POSIX) diz SEE ALSO regex(7)
.
man 7 regex
fornece uma descrição da sintaxe da expressão regular e diz SEE ALSO POSIX.2, section 2.8 (Regular Expression Notation)
.
Você pode encontrar a sintaxe completa das Expressões Regulares Extensivas POSIX, descrita em O Grupo Aberto Documentação de expressões regulares de Posix .