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 08/11/2010, à 03:44

Hizoka

[resolu] ne lister que les dossiers les plus profond

Bonsoir,

je cherche une option à find.

Soit :

find . -type d
.
./Trusty_Bell
./Trusty_Bell/tome_1
./Trusty_Bell/tome_1/_chap_5
./Trusty_Bell/tome_1/_chap_2
./Trusty_Bell/tome_1/_chap_1
./Trusty_Bell/tome_1/_chap_4
./Trusty_Bell/tome_1/_chap_3

comment faire pour ne lister que les dossiers les plus profonds, donc :

./Trusty_Bell/tome_1/_chap_5
./Trusty_Bell/tome_1/_chap_2
./Trusty_Bell/tome_1/_chap_1
./Trusty_Bell/tome_1/_chap_4
./Trusty_Bell/tome_1/_chap_3

Sachant que je ne sais pas le nombre de dossier pouvant être contenu...

merci smile

Dernière modification par Hizoka (Le 08/11/2010, à 18:38)


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

Hors ligne

#2 Le 08/11/2010, à 05:18

UUBBUU_USER

Re : [resolu] ne lister que les dossiers les plus profond

Salut,
'ptêt' comme ça ??

find ./*/*/*/ -type d

PEACE LOVE UNITY                                                      FREE TIBET

Hors ligne

#3 Le 08/11/2010, à 06:29

Hizoka

Re : [resolu] ne lister que les dossiers les plus profond

comme je le dis je ne connais pas forcement la profondeur des dossiers... donc dans le cas d'une profondeur de 5-6 dossiers, ça ne passe plus...


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

Hors ligne

#4 Le 08/11/2010, à 06:47

UUBBUU_USER

Re : [resolu] ne lister que les dossiers les plus profond

ou alors triturer avec ou la profondeur mini

find .  -mindepth n -type d

sinon man page fr find


PEACE LOVE UNITY                                                      FREE TIBET

Hors ligne

#5 Le 08/11/2010, à 07:56

Hizoka

Re : [resolu] ne lister que les dossiers les plus profond

ca n'aide toujours pas car il faut bien indiquer un "n" mais ca peut être 2 comme 8...

deja regardé de ce coté...

alors je pourrais le faire en 2 fois :
1 find, je compte le nombre de / max
2 find, je lui indique le niveau min en utilisant ce nombre.... mais pas des plus pratique ou simple...

Dernière modification par Hizoka (Le 08/11/2010, à 07:58)


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

Hors ligne

#6 Le 08/11/2010, à 09:16

kyncani

Re : [resolu] ne lister que les dossiers les plus profond

Find n'a pas ce genre d'option. Donc :

find . -type d | sort | perl -nle 'if (defined $o) { $_ =~ m#^\Q$o\E/# or print $o } $o=$_; END { print $o if defined $o }'

Hors ligne

#7 Le 08/11/2010, à 09:58

credenhill

Re : [resolu] ne lister que les dossiers les plus profond

hello
une solution avec wk

$ find . -type d
.
./b
./b/c
./b/c/f
./b/c/d
./b/c/e
$ find . -depth -type d|awk -F/ '{x[n]=NF;if(NF>=x[n++-1])print $0}'
./b/c/f
./b/c/d
./b/c/e
$ 

Hors ligne

#8 Le 08/11/2010, à 10:46

Totor

Re : [resolu] ne lister que les dossiers les plus profond

Salut,

find . -type d -exec bash -c 'shopt -s nullglob; [[ ! $(printf "%s" {}/*/) ]] && echo "{}";' \;
shopt -s nullglob
while read
do [[ ! $(printf "%s" ${REPLY}/*/) ]] && echo "${REPLY}"
done < <(find -type d)

Si ton code n'est pas générique à différentes versions de bash, tu peux exploiter l'option globstar (bash >= 4):

shopt -s nullglob
while read
do 
[[ ! $(printf "%s" ${REPLY}/*/) ]] && echo "${REPLY}"
done < <(shopt -s dotglob globstar; printf "%s\n" **/)

-- Lucid Lynx --

Hors ligne

#9 Le 08/11/2010, à 13:11

kyncani

Re : [resolu] ne lister que les dossiers les plus profond

@credenhill

/home/kyncani/tmp/t/ > find . -type d | sort
.
./a
./b
./b/c
./d
/home/kyncani/tmp/t/ > find . -depth -type d|awk -F/ '{x[n]=NF;if(NF>=x[n++-1])print $0}'
./b/c
./b
./d
./a
/home/kyncani/tmp/t/ >

Une petite correction s'impose wink

Hors ligne

#10 Le 08/11/2010, à 18:37

Hizoka

Re : [resolu] ne lister que les dossiers les plus profond

dommage que find ne le permette pas.

un grand merci à vous !


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

Hors ligne