Grep élégant sur dates

Résolu/Fermé
DonutMan - 11 janv. 2012 à 17:55
 DonutMan - 12 janv. 2012 à 11:03
Bonjour à tous/toutes,

j'ai un ensemble de fichiers dont le nom contient une année.
Par exemple:

toto_1998.txt;
toto_1999.txt;
toto_2000.txt;
toto_2001.txt;
etc.


je cherche un grep élégant qui me renverrait l'ensemble des fichiers toto compris entre deux années.

Entre 2000 et 2007, c'est simple, il me suffit de dire :

ls | grep -E '200[0-7]'


En revanche, ça se complique si on chevauche le millénaire... Par exemple entre 1995 et 2002....

La seule solution que j'ai trouvé c'est :

ls | grep -E '(1995|1996|1997|1998|1999|2000|2001|2002)'

Ca marche mais je ne trouve pas ça très beau... Et potentiellement ça devient très long si l'écart entre les deux années augmente !

Avez-vous des idées ou des suggestions ?

Merci d'avance

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
11 janv. 2012 à 18:01
Salut,

egrep '199[5-9]|200[0-2]'

;-))
1
Ah bah oui, je n'y avais pas pensé... Merci beaucoup :)
0