find la command avec un quantificateur regex eg {1,2}

J'ai essayé de créer une string de command de search qui finda tous les dossiers qui se terminent par un nombre 1-99 mais excluent tous les autres.

Par exemple, je veux find monfile1 monfile99 mais pas monfile456 et non monfile

La regex à laquelle je pense est myfile[1-9]{1,2} mais je ne peux pas le faire fonctionner avec find.

find . -regex '.*myfile[0-9]{1,2}' find . -regex '.*myfile[0-9]{1,2}' OU find . -iname 'myfile[0-9]{1,2}' find . -iname 'myfile[0-9]{1,2}'

D'après ce que je peux voir, c'est la partie {1,2} qui ne fonctionne pas.

(d'ailleurs pouvez-vous utiliser -name -regex interchangeable?)

Toute aide appréciée.

Tu pourrais essayer

 find . -regex '.*myfile[0-9][0-9]?' 

ou

 find . \( -name "myfile[0-9][0-9]" -o -name "myfile[0-9]" \) 

Si vous avez GNU find, vous pouvez utiliser un autre type d'expression régulière:

 find . -regextype sed -regex '.*myfile[0-9]\{1,2\}' 

Selon GNU find utilise une syntaxe d'expression régulière Emacs par défaut – Emacs supporte la syntaxe \{from,to\} , mais au less GNU find ne le supporte pas.

Curieusement, le manuel de reference n'inclut pas de section sur la syntaxe d'expression rationnelle sed , donc qui sait quelles parties sont supscopes.