Skip to content

Instantly share code, notes, and snippets.

@lidio601
Last active August 29, 2015 14:01
Show Gist options
  • Save lidio601/c715f9d384c97c867685 to your computer and use it in GitHub Desktop.
Save lidio601/c715f9d384c97c867685 to your computer and use it in GitHub Desktop.
Analizza il dettaglio delel chiamate riportate nei file CSV esportati dagli Excel di report forniti dal sito della Vodafone (di qualche anno fa =) )
#!/bin/sh
# File CSV di esempio
# Dettaglio spese relative al Numero di telefono 123456789123 per il periodo dal 04/04/2008 al 03/05/2008
#Altro,,1231***,03/05/2008 15:20:15,00:00:01,0.00000
#Servizi di messaggistica,Voda,1234453***,01/05/2008 19:26:07,,0.15000
#Chiamate voce e video,Voda,1234453***,19/04/2008 17:25:45,00:00:20,0.18340
#Servizi di messaggistica,Voda,1234453***,19/04/2008 09:43:54,,0.15000
# Controlla che ci sia un argomento
[ $# -eq 1 ] || { echo >&2 ERRORE: Devi specificare il file delle chiamate!; exit 1; }
# Definisce i l file di input delle chiamate, la valuta utilizzata ed inizializza le variabili del caso
INPUT_f="$1"
VALUTA="euro"
let tot=costo_tot=sms_inviati=costo_sms=tel_effettuate=costo_tel=altro=costo_altro=sms_zero=0
# Controlla se il file esiste
[ ! -f $1 ] && { echo >&2 ERRORE: il file \'$1\' non esiste; exit 1; }
# Inizia il report
echo ""
echo "---------------------------------------------------------------"
echo; echo "Please stand by..."
# Calcola il numero e il costo totale delle operazioni
for item in `cat $INPUT_f |grep | awk -F, '{print $6}'`; do
tot=`expr $tot + 1`
costo_tot=`echo "$costo_tot + $item" | bc`
done
# Calcola il numero e il costo dei messaggi
echo -n "."
for item in `cat $INPUT_f | grep messaggistica | awk -F, '{print $6}'`; do
sms_inviati=`expr $sms_inviati + 1`
costo_sms=`echo "$costo_sms + $item" | bc`
done
# Calcola il numero e il costo delle telefonate
echo -n "."
for item in `cat $INPUT_f | grep voce | awk -F, '{print $6}'`; do
tel_effettuate=`expr $tel_effettuate + 1`
costo_tel=`echo "$costo_tel + $item" | bc`
done
# Calcola il numero e il costo di altre operazioni
echo -n "."
for item in `cat $INPUT_f | grep -v Messaggi | grep -v Telefonia | awk -F, '{print $6}'`; do
altro=`expr $altro + 1`
costo_altro=`echo "$costo_altro + $item" | bc`
done
# Calcola il numero dei messaggi inviati gratuitamente
sms_zero=`cat $INPUT_f | grep Messaggi | awk -F, '{print $6}' | grep 0.0 | wc -l`
# Termina il report
echo; echo "Le operazioni complessive sono state $tot per un costo totale di $costo_tot $VALUTA, cosi' ripartite:"
echo "*) gli SMS inviati sono stati $sms_inviati per un costo di $costo_sms $VALUTA ($sms_zero inviati gratuitamente)"
echo "*) le telefonate effettuate sono sate $tel_effettuate per un costo di $costo_tel $VALUTA"
echo "*) sono presenti altre $altre voci per un costo di $costo_altro $VALUTA"
echo ""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment