Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Expression régulière

13 réponses
Avatar
Dominique
Bonjour,

Soit un ls -l qui me renvoie les informations suivantes :


-rw------- 1 normal normal 306626 2010-02-27 11:41
grisbi_060_20100227T114139.gsb
-rw------- 1 normal normal 308630 2010-02-27 11:55
grisbi_060_20100227T115547.gsb
-rw------- 1 normal normal 306750 2010-02-28 08:55
grisbi_060_20100228T085548.gsb
-rw------- 1 normal normal 308745 2010-02-28 12:47
grisbi_060_20100228T124719.gsb
-rw------- 1 normal normal 306888 2010-03-02 04:52
grisbi_060_20100302T045227.gsb
-rw------- 1 normal normal 308915 2010-03-03 19:00
grisbi_060_20100303T190043.gsb
-rw------- 1 normal normal 307016 2010-03-05 07:35
grisbi_060_20100305T073532.gsb
-rw------- 1 normal normal 309195 2010-03-05 18:01
grisbi_060_20100305T180111.gsb
-rw------- 1 normal normal 307539 2010-03-06 09:23
grisbi_060_20100306T092340.gsb
-rw------- 1 normal normal 309493 2010-03-09 06:31
grisbi_060_20100309T063100.gsb
-rw------- 1 normal normal 307389 2010-03-11 06:14
grisbi_060_20100311T061409.gsb

etc.

Tous ces fichiers ont, dans une partie de leur nom, un motif de la forme
AAAAMMJJ. Par exemple, pour le dernier, j'ai 20100311

Je sais lister les fichiers qui ont ce motif avec :
ls -l *20100311*

Comme pourrais-je faire pour n'avoir pas ce motif en sortie de ls ? En
sous produit, j'aimerais pouvoir supprimer avec rm les fichiers qui
n'ont pas ce motif.

Je vous remercie et vous souhaite une bonne journée,

--
Dominique
Courriel : dominique point sextant ate orange en France
Esto quod es

3 réponses

1 2
Avatar
Luc.Habert.00__arjf
Dominique :

Pourrais-tu m'expliquer ton motif .[!.]* ..?* ?



Le * ne sélectionne pas les fichiers commençant par « . ». Donc il faut
rajouter un motif pour eux, mais en prenant garde à exclure « . » et « .. ».
« .[!.]* » sélectionne toutes les entrées commençant par un point, suivi
d'autre chose qu'un point, et « ..?* » sélectionne tout ce qui commence par
« .. » et est au moins suivi d'un caractère.
Avatar
Nicolas George
Fabien LE LEZ wrote in message
:
J'imagine que "find" est plus adéquat ?



Un peu. Je préfère largement utiliser un shell avec un globbing plus évolué.

Mais... y a-t-il un moyen de mettre grep entre les deux, pour
filtrer ?



man grep, /0 donne la réponse : oui.
Avatar
Luc.Habert.00__arjf
Fabien LE LEZ :

Mais... y a-t-il un moyen de mettre grep entre les deux, pour
filtrer ?



Non (enfin, pas sans acrobaties grotesques du genre intercaler un xargs -0
exécutant un script shell qui filtre). Mais find lui-même permet de filtrer,
regarde entre autres les opérateurs -name et -regex.
1 2