#1 Le 07/09/2008, à 22:38
- simon74
[Resolu]compter des fichiers sans dépasser 70mo
bonsoir,
#!/bin/sh
chemin="/monrepertoire/"
nb=0
total=70000000
fichier=$(find $chemin -name *.jpg | head -$nb )
octe=$(wc -c $fichier)
while [ $octe -lt $total ]; do
nb=$(($nb+1))
fichier=$(find $chemin -name *.jpg | head -$nb )
octe=$(wc -c $fichier)
echo "il en manque"
done
echo $fichier $octe
exit 0
comment faire un tel script, je me melange dans ma boucle, merci de votre aide
Dernière modification par simon74 (Le 08/09/2008, à 10:43)
Hors ligne
#2 Le 08/09/2008, à 08:39
- Totor
Re : [Resolu]compter des fichiers sans dépasser 70mo
Salut,
Je ne comprends pas bien ce que tu cherches à faire :
- compter le nombre de fichier dont la taille ne dépasse pas 70Mo ?
Si c'est le cas, ceci est une solution :
find ${chemin} -iregex '.*\.jpg' -a ! -size 71680k|wc -l
Dernière modification par Totor (Le 08/09/2008, à 08:41)
-- Lucid Lynx --
Hors ligne
#3 Le 08/09/2008, à 09:51
- simon74
Re : [Resolu]compter des fichiers sans dépasser 70mo
Merci pour ta réponse
non en fait je desire selectionner autant de fichier tant que la somme de ceux-ci est inférieur a 70mo.
exemple :
fichier 1 = 10mo
fichier 2 = 35mo
fichier 3 = 5mo
fichier 4 = 15mo
fichier 5 = 35mo
fichier 6 = 35mo
...
fichier "n" = "x"mo
les 4 premiers font 65 et donc < à 70mo
il faut donc selectionner les 4 premiers fichiers et reprendre la boucle au 5eme fichier et faire de même...
le but étant de classer les fichiers dans des répertoires volume1, volume2, volume3, ..., volume "n" de 70mo chacun
Hors ligne
#4 Le 08/09/2008, à 10:10
- Totor
Re : [Resolu]compter des fichiers sans dépasser 70mo
Dans les grandes lignes :
#!/bin/sh
chemin="/monrepertoire/"
max=70000000
total=0
numVol=1
find ${chemin} -iregex '.*\.jpg'|while read fichier
do
taille=$(wc -c < $fichier}
total=$((${total}+${taille}))
if [ ${total} -gt ${max} ]; then
total=${taille}
numVol=$((${numVol}+1))
fi
cp "${fichier}" "volume${numVol}"
done
exit 0
Mais par contre, ça ne te garantie pas une répartition super nickel et homogène...
Dernière modification par Totor (Le 08/09/2008, à 10:52)
-- Lucid Lynx --
Hors ligne
#5 Le 08/09/2008, à 10:42
- simon74
Re : [Resolu]compter des fichiers sans dépasser 70mo
un grand merci
chemin="/MonRepertoire"
max=70000000
total=0
numVol=1
mkdir volume$numVol
find ${chemin} -iregex '.*\.jpg' | while read fichier
do
taille=$(wc -c < $fichier)
total=$((${total}+${taille}))
cp "$fichier" "volume$numVol"
if [ ${total} -gt ${max} ]; then
total=0
numVol=$((${numVol}+1))
mkdir volume$numVol
fi
done
exit 0
voila le script avec quelques corrections
Dernière modification par simon74 (Le 09/09/2008, à 19:13)
Hors ligne