52 lines
1.3 KiB
Ruby
52 lines
1.3 KiB
Ruby
|
#!/usr/bin/ruby -w
|
|||
|
|
|||
|
# Affiche un histogramme du nombre de fichiers tri<72>s par classe de grandeur "tailleClasse" sur un nombre "nombreDeClasse".
|
|||
|
|
|||
|
# R<>cup<75>ration des argument
|
|||
|
if ARGV.length < 3
|
|||
|
puts "Utilisation : ./histo.rb < nomRep > < nbreDeClasse > < tailleClasse (en octet) >"
|
|||
|
exit
|
|||
|
end
|
|||
|
|
|||
|
# attribution d'<27>l<EFBFBD>ments
|
|||
|
|
|||
|
rep=ARGV[0]
|
|||
|
nbr=ARGV[1].to_i
|
|||
|
taille=ARGV[2].to_i
|
|||
|
|
|||
|
# initialisation de certaines variables
|
|||
|
|
|||
|
nbrFichiers = 0
|
|||
|
tailleTotale = 0
|
|||
|
tailleTotaleBlocs = 0
|
|||
|
histogramme = []
|
|||
|
for i in 0 ... nbr do
|
|||
|
histogramme[i] = 0
|
|||
|
end
|
|||
|
|
|||
|
# Nous allons dans le r<>pertoire courant
|
|||
|
Dir.chdir(rep)
|
|||
|
|
|||
|
repertoireOuvert=Dir.open(rep)
|
|||
|
|
|||
|
repertoireOuvert.each do |entree|
|
|||
|
if File.file?(entree)
|
|||
|
fichier = File.open(entree,"r")
|
|||
|
stats = fichier.stat
|
|||
|
colonne = stats.size / taille
|
|||
|
histogramme[colonne] = histogramme[colonne].to_i + 1
|
|||
|
nbrFichiers = nbrFichiers + 1
|
|||
|
tailleTotale = tailleTotale + stats.size
|
|||
|
tailleTotaleBlocs = tailleTotaleBlocs + stats.blocks.to_i
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
histogramme.each do |element|
|
|||
|
print(element.to_s, " | ")
|
|||
|
end
|
|||
|
|
|||
|
puts "\nNombre total de fichiers examin<69>s : #{nbrFichiers}"
|
|||
|
puts "Taille totale : #{tailleTotale}"
|
|||
|
puts "Nombre total de blocs lus : #{tailleTotaleBlocs}"
|
|||
|
tailleMoyenneFichier = tailleTotale / nbrFichiers
|
|||
|
puts "Taille moyenne d'un fichier : #{tailleMoyenneFichier}"
|