Risposte:
Perché sed non è perl - le regex sed non hanno una \dscorciatoia:
sed 's/[[:digit:]]\+\.//g'
sed documentazione di espressione regolare qui .
/[[:digit:]]*\. /corrisponderà alla stringa foo.perché consenti zero cifre. Se vuoi uno o più usi \+come mostrato
Due problemi:
sednon supporta \d. Usa [0-9]o [[:digit:]].
+deve essere backslash per ottenere il significato speciale: \+.
interpret regular expressions as extended (modern) regular expressions rather than basic regular expressions (BRE's).Purtroppo, questo non aiuta con il problema \ d ...
-Enon funziona con GNU sed, -rinvece lo usa .
sedproprio che faccia schifo quando si tratta di portabilità ...
-Esu BSD sed e -rsu GNU sed), in BSD sed, +né lo \+stesso ( né lo stesso ?) funzionerà affatto, mentre in GNU sed puoi farli lavorare con la barra rovesciata. Da qui la raccomandazione comune di usare regex esteso negli script
La pagina man di sed fa riferimento alla pagina man re_format. Fa 2 distinzioni: (1) obsolete rispetto alle espressioni regolari estese; (2) espressioni regolari non migliorate rispetto a quelle avanzate. Sono possibili tutte e 4 le combinazioni. C'è supporto in sed sia per obsoleti che estesi, ma in entrambi i casi solo per non potenziati. L'operatore \ d è una caratteristica delle espressioni regolari migliorate, quindi non supportato da sed.