#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
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
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
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