Respostas:
Como sed não é perl - as regexes sed não têm uma \d
abreviação:
sed 's/[[:digit:]]\+\.//g'
aqui documentação de expressão regular .
/[[:digit:]]*\. /
corresponderá à sequência foo.
porque você permite zero dígitos. Se você quer uma ou mais uso \+
como mostrado
Dois problemas:
sed
não suporta \d
. Use [0-9]
ou [[:digit:]]
.
+
deve ser com barra invertida para obter o significado especial: \+
.
interpret regular expressions as extended (modern) regular expressions rather than basic regular expressions (BRE's).
Infelizmente, isso não ajuda com a questão \ d ...
-E
não funciona para o GNU sed, ele usa em seu -r
lugar.
sed
apenas suga quando se trata de portabilidade ...
-E
no BSD sed e -r
no GNU sed), no BSD sed, +
nem o \+
( nem com o mesmo ?
) funcionará, enquanto no GNU sed você pode faça com que eles trabalhem com a barra invertida. Daí a recomendação comum de usar regex prolongada em scripting
A página do manual sed referencia a página do manual re_format. Faz duas distinções: (1) expressões regulares obsoletas versus estendidas; (2) expressões regulares não aprimoradas versus expressões regulares aprimoradas. Todas as 4 combinações são possíveis. Há 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.