Pages : 1
#1 Le 17/04/2008, à 21:02
- dplus
bash - compter le nb de fichier
bonsoir,
je dois faire un pti script pour compter le nombre de fichiers par extension (il doit compter ausi le fichiers de sous-répertoires). j'ai une version "beta" mais il me compte que les fichiers du directeur courant. Avez-vous idée comment faire pour compter aussi les fichiers situés dans les sous répertoires? voila mon script:
for i in $(ls -lrtR *.* | cut -d"." -f2 | sort -u )
do
echo "$i ---- " `ls -lrtR *$i 2> /dev/null | wc -l | grep -v 0`
done
merci
Hors ligne
#2 Le 17/04/2008, à 21:16
- abetsic
Re : bash - compter le nb de fichier
Bonsoir,
find . -name *.jpg
te renvoie la liste de tout les fichiers jpg contenus dans le repertoire courant et les sous-répertoires.
Hors ligne
#3 Le 17/04/2008, à 21:27
- dplus
Re : bash - compter le nb de fichier
ouais, je sais mais j'dois faire pour tous les extensions
Hors ligne
#4 Le 17/04/2008, à 21:33
- tshirtman
Re : bash - compter le nb de fichier
piste: "-name" n'est pas la seule option de find...
une fois que tu as ta liste du fichier fait des cut pour récupérer que les extensions puis un sort pour les classer, il te reste à parcourir la liste en comptant toutes les extensions identiques consécutives...
Dernière modification par tshirtman (Le 17/04/2008, à 21:35)
Hors ligne
#5 Le 17/04/2008, à 22:22
- dplus
Re : bash - compter le nb de fichier
@tshirtman je sais pas. j'ai pas trouve la bonne solution .... et en plus je dois pas afficher les fichiers par extension: le script doit compter les fichiers. le script doit retourner une liste :
py -- 2
h -- 3
jpg --- 5
Dernière modification par dplus (Le 17/04/2008, à 22:24)
Hors ligne
#6 Le 17/04/2008, à 22:31
- Alain.g
Re : bash - compter le nb de fichier
quelque chose comme ça irait ?
find . -type f | sed 's/.*\.//' | sort | uniq -c
Xubuntu Karmic !
Hors ligne
#7 Le 17/04/2008, à 22:50
- tshirtman
Re : bash - compter le nb de fichier
oui c'est bien ce que j'avais compris...
find . -type f
te donne la liste des fichiers avec ceux des sous dossiers,(ta question originale).
pour analyser le résultat et compter je pense que awk est l'outil idéal...
arf: grillé par ce que je lisait le man awk ^^'
bien vu le uniq -c je connaissait pas cette option...
re edit: pour la présentation je rajouerais bien "|sort -nr"
edit encore: par contre les fichiers sans extensions ça casse tout -_-.
Dernière modification par tshirtman (Le 17/04/2008, à 22:58)
Hors ligne
#8 Le 17/04/2008, à 23:12
- Alain.g
Re : bash - compter le nb de fichier
edit encore: par contre les fichiers sans extensions ça casse tout -_-.
on peut ajouter à find : -name "?*.*"
(le "?" pour éviter les fichiers cachés sans extensions)
find . -type f -name "?*.*" | sed 's/.*\.//' | sort | uniq -c | sort -nr
edit : sinon ajouter l'option -i à uniq permet d'ignorer la case.
Dernière modification par Alain.g (Le 18/04/2008, à 04:50)
Xubuntu Karmic !
Hors ligne
#9 Le 18/04/2008, à 09:46
- clahor
Re : bash - compter le nb de fichier
bjr dans le post precedent
's/.*\.//'
.*\.//
signifie substituer tout ce qui est avant le point par rien mais....je ne comprends pas la signification du premier point
.*\.//
merci d'avance
Hors ligne
#10 Le 18/04/2008, à 10:10
- dplus
Re : bash - compter le nb de fichier
salut,
@alain merci
@clahor il faut mettre le premier point sinon il va affiser l'arborescence du dossier
Hors ligne
#11 Le 18/04/2008, à 17:32
- Alain.g
Re : bash - compter le nb de fichier
.*\.//
signifie substituer tout ce qui est avant le point par rien mais....je ne comprends pas la signification du premier point
Dans les expressions rationnelles, le métacaractère point correspond à un caractère quelconque et l'astérisque est un quantificateur répétant 0, une ou plusieurs fois. Comme il est gourmand, cela correspond ici à tout ce qui est avant le dernier point de la chaîne.
Dernière modification par Alain.g (Le 18/04/2008, à 17:34)
Xubuntu Karmic !
Hors ligne
#12 Le 18/04/2008, à 19:04
- clahor
Re : bash - compter le nb de fichier
merci a tous pour ces explications ))
Hors ligne
#13 Le 26/09/2008, à 15:58
- Delcano
Re : bash - compter le nb de fichier
Bonjour à tous
est il possible de rediriger la sortie vers xmessage et quel code doit on employer?
merci
Hors ligne
#14 Le 26/09/2008, à 19:30
- tshirtman
Re : bash - compter le nb de fichier
pour rediriger la sortie d'un programme vers l'entré d'un autre on utilise "pipe" (prononcer "païpe" ça veux dire tuyau) et c'est ce symbole là |
commande | commande2
Hors ligne