web-dev-qa-db-fra.com

Pourquoi «\ d» ne fonctionne-t-il pas dans les expressions régulières dans sed?

J'essaie d'utiliser \d dans regex dans sed mais cela ne fonctionne pas:

sed -re 's/\d+//g'

Mais cela fonctionne:

sed -re 's/[0-9]+//g'
50
user2036880

\d est un commutateur et non une macro d'expression régulière. Si vous souhaitez utiliser une "constante" prédéfinie au lieu de [0-9] expression essayez simplement d'exécuter ce code:

s/[[:digit:]]+//g
37
Kamil

Il n'y a pas un tel groupe de caractères spéciaux dans sed. Vous devrez utiliser [0-9].

Dans GNU sed, \d introduit un code de caractère décimal de un à trois chiffres compris entre 0 et 255. Comme indiqué dans ce commentaire .

21
Ivaylo Strandjev