Réponses:
Parce que sed n'est pas perl - les expressions rationnelles sed n'ont pas de \d
raccourci:
sed 's/[[:digit:]]\+\.//g'
La documentation sur les expressions régulières est ici .
/[[:digit:]]*\. /
correspondra à la chaîne foo.
parce que vous autorisez zéro chiffre. Si vous voulez une ou plusieurs utilisations \+
comme indiqué
Deux problèmes:
sed
ne supporte pas \d
. Utilisez [0-9]
ou [[:digit:]]
.
+
doit être backslashés pour obtenir la signification particulière: \+
.
interpret regular expressions as extended (modern) regular expressions rather than basic regular expressions (BRE's).
Malheureusement, cela n'aide pas le problème de \ d ...
-E
ne fonctionne pas pour GNU sed, il utilise à la -r
place.
sed
merde quand il s'agit de la portabilité ...
-E
sur BSD sed et -r
GNU sed), sous BSD sed, ni +
ne fonctionnera \+
(même avec ?
), alors que dans GNU sed, vous pouvez faites-les travailler avec la barre oblique inverse. D'où la recommandation commune d'utiliser l'expression régulière étendue dans les scripts
La page de manuel sed fait référence à la page de manuel re_format. Il fait 2 distinctions: (1) expressions régulières obsolètes par rapport aux expressions régulières étendues; (2) expressions régulières non améliorées par rapport aux expressions régulières améliorées. Les 4 combinaisons sont possibles. Sed est obsolète et étendu, mais dans les deux cas uniquement pour les versions non améliorées. L'opérateur \ d est une fonctionnalité d'expressions régulières améliorée, donc non prise en charge par sed.