SHELL grep digit

Résolu/Fermé
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 - 17 août 2007 à 12:33
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 17 août 2007 à 12:51
Bonjour,

j'ai un comportement curieux lorsque j'utilise :
grep -o :digit:

Je veux récupérer des noms de fichiers, et extraire la partie numérique de leur nom:
Exemple:

FIRST=$(find $REP_CRA_OUT/ -type f -name "$NOM_BASE_C*"|sort|head -1)
Je trouve par exemple /home/DCVN43231.tar.bz2
Je fais ensuite :
FIRST=$(basename $FIRST|grep -o :digit:)
et là je récupère :
4 3 2 3 1
au lieu de
43231

C'est bizarre non ?

J'ai essayé "grep -o :digit:*" ou "grep -o :digit:+" mais ca ne renvoie rien

:-|

Merci ;-)

4 réponses

tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
17 août 2007 à 12:34
Pardon je voulais dire \[\[:digit:\]\]
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
17 août 2007 à 12:35
(Sans les antislash)
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
17 août 2007 à 12:43
Finalement j'ai mis :

egrep -o "\[[:digit:]\]{1,}
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
17 août 2007 à 12:47
Salut,

et avec la classe de caractères [0-9] ça ne te conviens pas?!
grep -Eo '[0-9]{1,}'
--
lami20j
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
17 août 2007 à 12:48
ah ben si j'avais pas pensé.

Mais grep -E et egrep c'est pareil ?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
17 août 2007 à 12:51
Salut,

Mais grep -E et egrep c'est pareil ?


man grep

Egrep est similaire (sans etre identique) a grep -E, et est compatible avec les versions UNIX historiques de egrep
0