Pages : 1
#1 Le 17/09/2020, à 17:28
- Hizoka
[Résolu] Commande find
Bonsoir à vous
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
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 !
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
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.
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
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
Dernière modification par kamaris (Le 18/09/2020, à 12:04)
Hors ligne