J'essaie d'utiliser sed
pour remplacer tous les modèles par des chiffres suivis immédiatement par un point (tel que 3.
, 355.
) par une chaîne vide. Alors j'essaye:
sed 's/\d+\.//g' file.txt
Mais ça ne marche pas. Pourquoi donc?
Parce que sed n’est pas Perl - les expressions rationnelles sed n’ont pas de raccourci \d
:
sed 's/[[:digit:]]\+\.//g'
sed expression régulière documentation ici .
Deux problèmes:
sed
ne supporte pas \d
. Utilisez [0-9]
ou [[:digit:]]
.
+
doit être contre-slashé pour obtenir la signification spéciale: \+
.
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.