Commande find sur Ubuntu

lemzo618 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
lEprofSonDkon Messages postés 211 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   13
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   13 > lemzo618 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
pourquoi "impossible" ?
la commande
find
disponible sur ton système n'a pas d'option
-regex
?
0
Manu
 
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   Statut Membre Dernière intervention   13
 
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