Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/09/2020, à 17:28

Hizoka

[Résolu] Commande find

Bonsoir à vous smile

J'ai besoin d'identifier des dossiers pour un projet pro qui semble très délicat...

Je me retrouve avec une arborescence de dossiers de type :

blabla/A/Arthur/...
blabla/A/Alan/...
blabla/blibli/A/Aramis/...
blublu/blibli/bloblo/B/Bertrand/...

Ce que je cherche à récupérer :

blabla/A/Arthur
blabla/A/Alan
blabla/blibli/A/Aramis
blublu/blibli/bloblo/B/Bertrand

Ce que j'ai fait :

find . -ipath "*/[a-z]"

Ce que j'obtiens :

blabla/A
blabla/blibli/A
blublu/blibli/bloblo/B

J'arrive au résultat voulu via :

while read Dossier
do
  find "${Dossier}" -mindepth 1 -maxdepth 1
done < <(find . -ipath "*/[a-z]")

Mais vu le nombre de dossier à traiter, si je peux éviter de faire des sous commandes, ça serait appréciable...

Je voulais un truc du genre :

find . -ipath "*/[a-z]/*/"

mais il ne veut pas que path se termine par /.


Une idée ?

Merci beaucoup.


PS : Je suis sous bash v4.4

Dernière modification par Hizoka (Le 18/09/2020, à 11:58)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#2 Le 17/09/2020, à 17:40

Watael

Re : [Résolu] Commande find

salut,

shopt -s nullglob globstar
printf '%s\n' ./[A-z]/*/

?


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 17/09/2020, à 17:49

Hizoka

Re : [Résolu] Commande find

Salut Watael, merci de ta proposition smile

printf '%s\n' ./[A-z]/*/

ne renvoie rien.

printf '%s\n' */[A-z]/*/
blabla/A/Arthur/...
blabla/A/Alan/...

Je n'ai pas les autres sous dossiers.

blabla/blibli/A/Aramis/...
blublu/blibli/bloblo/B/Bertrand/...

KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#4 Le 17/09/2020, à 17:52

Watael

Re : [Résolu] Commande find

pfff, j'ai oublié l'essentiel : le globstar !

printf '%s\n' ./**/[A-z]/*/

quel co[uillo]n ! smile


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 17/09/2020, à 17:54

Hizoka

Re : [Résolu] Commande find

J'avais testé entre temps smile

Mais non, ça ne change rien.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#6 Le 17/09/2020, à 18:29

kamaris

Re : [Résolu] Commande find

Avec une regex ? Du genre

-iregex '.*/[a-z]/[^/]+'

peut-être en adaptant le type de regex.

EDIT : chez moi ça a l'air de marcher comme ça :

$ mkdir -p blabla/A/Arthur blabla/A/Alan/ blabla/blibli/A/Aramis/ blublu/blibli/bloblo/B/Bertrand/
$ find . -iregex '.*/[a-z]/[^/]+'
./blabla/A/Arthur
./blabla/A/Alan
./blabla/blibli/A/Aramis
./blublu/blibli/bloblo/B/Bertrand
$

Dernière modification par kamaris (Le 17/09/2020, à 18:55)

Hors ligne

#7 Le 17/09/2020, à 18:52

Watael

Re : [Résolu] Commande find

avec ce mkdir, le globstar fonctionne de manière identique. sad


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#8 Le 17/09/2020, à 19:21

kamaris

Re : [Résolu] Commande find

Chez moi aussi.
Hizoka est en bash v4.4, mais je ne pense pas que ce soit ça…

Hors ligne

#9 Le 18/09/2020, à 11:58

Hizoka

Re : [Résolu] Commande find

Arf...

Je viens de voir que certains dossiers commencent par des points...

Je pense que c'est la différence entre les 2 commandes, find les affiches quand même et non pas printf.

Merci à tous les 2 smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#10 Le 18/09/2020, à 12:03

kamaris

Re : [Résolu] Commande find

Ah ça oui : dotglob smile

Dernière modification par kamaris (Le 18/09/2020, à 12:04)

Hors ligne