Commande find sur Ubuntu

Fermé
lemzo618 Messages postés 2 Date d'inscription samedi 23 mars 2019 Statut Membre Dernière intervention 24 mars 2019 - Modifié le 23 mars 2019 à 22:59
lEprofSonDkon Messages postés 211 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 8 octobre 2022 - 24 mars 2019 à 17:39
Bonjour toute monde,
Quelqu'un pourrait, avec la commande "find", lister le nom des répertoires dont le premier caractère est un chiffre et comportant exactement 4 lettres minuscules ?

J'ai pensé à faire #find . -name "[0-9][a-z][a-z][a-z][a-z]"#
...et là je me suis rendu compte de deux erreurs de compréhension de ma part : D'abord le fait que l'énoncé ne sous-entende pas que le nom des fichiers doit impérativement comporter 5 caractères; Ensuite que les caractères qui y sont décrits ne doivent pas nécessairement être successifs.
J'ai alors tenté de me corriger avec : #find . -name "[0-9]*[a-z]*[a-z]*[a-z]*[a-z]*"#
...et là, une autre erreur fait surface : les "*" étant des jokers, peuvent remplacer des lettres minuscules ce qui augmenterait le nombre de lettres minuscules (alors que fixé à 4 dans l'énoncé)...
A voir également:

2 réponses

lEprofSonDkon Messages postés 211 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 8 octobre 2022 13
Modifié le 23 mars 2019 à 23:44
salut,

autant que je sache, les globs (correspondance de motifs en shell) ne permettent pas de compter les correspondances, ou de restreindre leur étendue.
*
tout ou rien
?
un seul
[ ]
liste ou plage de caractères

en regex, on peut limiter à un certain nombre ou à une fourchette le nombre de correspondances d'un motif (
{n}
, ou
{n,m}
), ou exprimer qu'il y en a un (
?
), un ou aucun (
*
), ou au moins un (
+
).
il faudrait en conséquence utiliser l'option
-regex
de
 find
, et avec les classes [:digit:], [:upper:], [:lower:] énumérer toutes les combinaisons possibles parmi lesquelles les 4 minuscules suivent le nombre, sont plus ou moins consécutives et panachées avec les majuscules, et pour finir groupées à la fin du nom de fichier.

bon courage !...
0
lemzo618 Messages postés 2 Date d'inscription samedi 23 mars 2019 Statut Membre Dernière intervention 24 mars 2019
24 mars 2019 à 17:33
D'accord je comprends...Il me semblait aussi que mon entreprise était impossible vu les outils que j'avais en ma possession.

Merci beaucoup :)
0
lEprofSonDkon Messages postés 211 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 8 octobre 2022 13 > lemzo618 Messages postés 2 Date d'inscription samedi 23 mars 2019 Statut Membre Dernière intervention 24 mars 2019
24 mars 2019 à 17:39
pourquoi "impossible" ?
la commande
find
disponible sur ton système n'a pas d'option
-regex
?
0
Je vous propose :

find . -name "[0-9][^a-z]*[a-z][^a-z]*[a-z][^a-z]*[a-z][^a-z]*[a-z][^a-z]*"
0
lEprofSonDkon Messages postés 211 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 8 octobre 2022 13
24 mars 2019 à 15:04
hmm. le souci va persister : les astérisques sont toujours remplacés par tout ou rien.
or, "tout" inclut les minuscules; cela ne restreint donc pas leur nombre.
0