Como sed não é expressões regulares perladas, não tem uma abreviação \d :
sed 's/[[:digit:]]\+\.//g'
documentação da expressão regular sed aqui .
Estou tentando usar sed para substituir todos os padrões por dígitos seguidos imediatamente por um ponto (como 3. , 355. ) por uma string vazia. Então eu tento:
sed 's/\d+\.//g' file.txt
Mas isso não funciona. Por que isso?
Como sed não é expressões regulares perladas, não tem uma abreviação \d :
sed 's/[[:digit:]]\+\.//g'
documentação da expressão regular sed aqui .
Dois problemas:
sed não suporta \d . Use [0-9] ou [[:digit:]] .
+ deve ser backslashed para obter o significado especial: \+ .
A página man do man faz referência à página man re_format. Faz 2 distinções: (1) expressões regulares obsoletas versus estendidas; (2) expressões regulares não aprimoradas versus aprimoradas. Todas as 4 combinações são possíveis. Existe suporte no sed para obsoletos e estendidos, mas em ambos os casos apenas para não-aprimorados. O operador \ d é um recurso de expressões regulares aprimoradas, portanto não é suportado pelo sed.