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

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