#! /bin/bash ################## #Inserimento dati# ################## ##################################### #immettere il percorso dei newsgroup listanewsgroup="alt.os.linux alt.os.linux.suse free.it.linux free.it.linux.suse it.comp.os.linux.annunci it.comp.os.linux.iniziare it.comp.os.linux.sys italia.jesi.linux " ###################################################### # Immettere quanti giorni conservare a partire da oggi # di default è 15 data=15 ####################### #Fine inserimento dati# ####################### ####################### #Inizio del programma # ####################### #spostiamoci nella cartella di tt cd ~/.tt/inbox # calcoliamo la data giorno=`date -d "$data days ago" '+%d' ` mese=`date -d "$data days ago" '+%b' ` anno=`date -d "$data days ago" '+%Y' ` # convertiamo i mesi dall'italiano all'inglese case $mese in gen) mese=Jan ;; feb) mese=Feb ;; mar) mese=Mar ;; apr) mese=Apr ;; mag) mese=May ;; giu) mese=Jun ;; lug) mese=Jul ;; ago) mese=Aug ;; set) mese=Sep ;; ott) mese=Oct ;; nov) mese=Nov ;; dic) mese=Dec ;; esac for newsgroup in $listanewsgroup do #verifica di esistenza del file if test -f $newsgroup ; then #calcolo tutte le linee nel file del newsgroup numlintot=0 numlintot=`grep -c '' $newsgroup` #cerco il numero di linea fino a dove cancellerò i messaggi numlin=0 numlin=`grep -n -B 15 'Date:' $newsgroup | grep -B 15 -m 1 "$giorno $mese $anno" |grep "Path:"|cut -d - -f1` #verifica che è tutto a posto if [ $numlin > 1 ]; then # cancellerò fino alla linea $numlin n=0 n=`expr $numlintot - $numlin` # quindi salvo le ultime $n linee # utilizzando un file temporaneo if [ $n > 1 ]; then temp=/tmp/mextemp touch $temp tail -n $n $newsgroup > $temp #contiamo i messaggi che sono rimasti mex=`grep -c '^\.$' $temp` cat $temp > $newsgroup #ripuliamo anche il flag tail -n $mex $newsgroup\ \(flags\) > $temp cat $temp > $newsgroup\ \(flags\) fi else echo $newsgroup è già aggiornato fi else echo $newsgroup non trovato fi done