Prova Pratica 2014.06.17
Revision as of 11:12, 3 April 2015 by Davide.quadrelli2 (talk | contribs) (Created page with "==Testo== <source lang="text"> Il comando che dovrete implementare come script shell o programma python e' maxfreq. Maxfreq ha come parametro un carattere alfanumerico e una d...")
Testo
Il comando che dovrete implementare come script shell o programma python e' maxfreq.
Maxfreq ha come parametro un carattere alfanumerico e una directory.
Es:
maxfreq q mydir
Cerca in tutto il sottoalbero del file system originato da mydir il file che ha la maggior frequenza della lettera indicata (in
questo caso la maggior frequenza di 'q'). Fornisce in output il nome del file e la frequenza in percentuale.
Soluzione di Davide Quadrelli
#! /bin/bash
if [[ -z $1 ]] ; then
echo "maxfreq [char da contare] [directory]"
exit
fi
if [[ -n $2 ]] ; then
files=`find -L $2`
else
echo if2
echo "maxfreq [char da contare] [directory]"
exit
fi
max=0
file=""
for var in $files; do
tmp=`cat $var 2> /dev/null | grep -c $1 2> /dev/null`
if [[ max -le tmp ]]; then
max=$tmp
file=$var
fi
done
dim=`ls -l $file | cut -d " " -f 5`
echo "( ${max} * 100 ) / ${dim}" > tmp
echo "quit" >> tmp
perc=`bc -q tmp`
rm tmp
echo "Il file $file contiene ${perc}% di $1 ($max su $dim caratteri)"